http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java deleted file mode 100644 index 2e50de1..0000000 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Client.java +++ /dev/null @@ -1,916 +0,0 @@ -/* - * 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.db.entity.room; - -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.Table; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; - -import org.apache.openmeetings.db.entity.basic.IClient; -import org.apache.openmeetings.db.entity.server.Server; -import org.apache.openmeetings.util.CalendarPatterns; -import org.apache.wicket.util.string.StringValue; - -/** - * Can be configured to be stored in memory or in database - * - * @author sebawagner - */ -@Entity -@NamedQueries({ - @NamedQuery(name = "deleteAll", query = "DELETE FROM Client"), - @NamedQuery(name = "deletedById", query = "DELETE FROM Client c WHERE c.id = :id"), - @NamedQuery(name = "deleteClientsByServer", query = "DELETE FROM Client c WHERE c.server = :server"), - @NamedQuery(name = "deletedByServerAndStreamId", query = "DELETE FROM Client c WHERE c.server = :server AND c.streamid LIKE :streamid"), - @NamedQuery(name = "countClients", query = "SELECT count(c.id) FROM Client c"), - @NamedQuery(name = "countClientsByServer", query = "SELECT count(c.id) FROM Client c WHERE c.server = :server"), - @NamedQuery(name = "countClientsByServerAndStreamId", query = "SELECT count(c.id) FROM Client c WHERE c.streamid LIKE :streamid AND c.server = :server"), - @NamedQuery(name = "getClientByServerAndStreamId", query = "SELECT c FROM Client c WHERE c.streamid LIKE :streamid AND c.server = :server"), - @NamedQuery(name = "getClientsByPublicSIDAndServer", query = "SELECT c FROM Client c WHERE c.publicSID LIKE :publicSID AND c.server = :server"), - @NamedQuery(name = "getClientsByPublicSID", query = "SELECT c FROM Client c WHERE c.publicSID LIKE :publicSID"), - @NamedQuery(name = "getClientsByServer", query = "SELECT c FROM Client c WHERE c.server = :server"), - @NamedQuery(name = "getClients", query = "SELECT c FROM Client c"), - @NamedQuery(name = "getClientsWithServer", query = "SELECT c FROM Client c LEFT JOIN FETCH c.server"), - @NamedQuery(name = "getClientsByUserId", query = "SELECT c FROM Client c WHERE c.server = :server AND c.userId = :userId"), - @NamedQuery(name = "getClientsByRoomId", query = "SELECT c FROM Client c WHERE c.roomId = :roomId"), - @NamedQuery(name = "getRoomsIdsByServer", query = "SELECT c.roomId FROM Client c WHERE c.server = :server GROUP BY c.roomId") -}) -@Table(name = "client") -@XmlRootElement -@XmlAccessorType(XmlAccessType.FIELD) -public class Client implements IClient { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "id") - private Long id; - - /** - * @see Client#getUsername() - */ - @Column(name = "username") - private String username = ""; - - /** - * @see Client#getStreamid() - */ - @Column(name = "streamid") - private String streamid = ""; - - /** - * @see Client#getScope() - */ - @Column(name = "scope") - private String scope = ""; - - /** - * @see Client#getVWidth() - */ - @Column(name = "vwidth") - private int vWidth = 0; - - /** - * @see Client#getVHeight() - */ - @Column(name = "vheight") - private int vHeight = 0; - - /** - * @see Client#getVX() - */ - @Column(name = "vx") - private int vX = 0; - - /** - * @see Client#getVY() - */ - @Column(name = "vy") - private int vY = 0; - - /** - * @see Client#getStreamPublishName() - */ - @Column(name = "stream_publish_name") - private String streamPublishName = ""; - - /** - * @see Client#getPublicSID() - */ - @Column(name = "public_sid") - private String publicSID = ""; - - /** - * {@link Client#getSid()} of the client who initiated the connection - */ - @Column(name = "owner_sid") - private String ownerSid = null; - - /** - * @see Client#getIsMod() - */ - @Column(name = "is_mod", nullable = false) - private boolean isMod = false; - - /** - * @see Client#getIsSuperModerator() - */ - @Column(name = "is_supermoderator", nullable = false) - private boolean isSuperModerator = false; - - /** - * @see Client#getCanDraw() - */ - @Column(name = "can_draw", nullable = false) - private boolean canDraw = false; - - /** - * @see Client#getCanShare() - */ - @Column(name = "can_share", nullable = false) - private boolean canShare = false; - - /** - * @see Client#getCanRemote() - */ - @Column(name = "can_remote", nullable = false) - private boolean canRemote = false; - - /** - * @see Client#getCanGiveAudio() - */ - @Column(name = "can_giveaudio", nullable = false) - private boolean canGiveAudio = false; - - @Column(name = "can_video", nullable = false) - private boolean canVideo = false; - - /** - * @see Client#getConnectedSince() - */ - @Column(name = "connected_since") - private Date connectedSince; - - /** - * @see Client#getFormatedDate() - */ - @Column(name = "formated_date") - private String formatedDate; - - /** - * @see Client#isScreenClient() - */ - @Column(name = "is_screenclient", nullable = false) - private boolean screenClient; - - /** - * @see Client#getUsercolor() - */ - @Column(name = "usercolor") - private String usercolor; - - /** - * @see Client#getUserpos() - */ - @Column(name = "userpos") - private Integer userpos; - - /** - * @see Client#getUserip() - */ - @Column(name = "userip") - private String userip; - - /** - * @see Client#getUserport() - */ - @Column(name = "userport") - private int userport; - - /** - * @see Client#getRoomId() - */ - @Column(name = "room_id") - private Long roomId; - - /** - * @see Client#getRoomEnter() - */ - @Column(name = "room_enter") - private Date roomEnter = null; - - /** - * @see Client#getBroadCastID() - */ - @Column(name = "broadcast_id") - private long broadCastID = -2; - - /** - * @see Client#getUserId() - */ - @Column(name = "user_id") - private Long userId = null; - - /** - * @see Client#getFirstname() - */ - @Column(name = "firstname") - private String firstname = ""; - - /** - * @see Client#getLastname() - */ - @Column(name = "lastname") - private String lastname = ""; - - /** - * @see Client#getMail() - */ - @Column(name = "email") - private String email; - - /** - * @see Client#getLastLogin() - */ - @Column(name = "last_login") - private String lastLogin; - - /** - * @see Client#getSecurityCode() - */ - @Column(name = "security_code") - private String securityCode; - - /** - * @see Client#getPicture_uri() - */ - @Column(name = "picture_uri") - private String picture_uri; - - /** - * @see Client#getLanguage() - */ - @Column(name = "language") - private String language = ""; - - /** - * @see Client#getAvsettings() - */ - @Column(name = "avsettings") - private String avsettings = ""; - - /** - * @see Client#getSwfurl() - */ - // FIXME: Move to {@link ClientSession} - @Column(name = "swfurl", length=2048) - private String swfurl; - - @Column(name = "tcurl", length=2048) - private String tcUrl; - - @Column(name = "nativeSsl", nullable = false) - private boolean nativeSsl = false; - - /** - * @see Client#getIsRecording() - */ - @Column(name = "is_recording", nullable = false) - private boolean isRecording = false; - - /** - * @see Client#getRoomRecordingName() - */ - @Column(name = "room_recording_name") - private String roomRecordingName; - - /** - * @see Client#getRecordingId() - */ - @Column(name = "recording_id") - private Long recordingId; - - /** - * @see Client#getRecordingMetaDataId() - */ - @Column(name = "recording_metadata_id") - private Long recordingMetaDataId; - - /** - * @see Client#isStartRecording() - */ - @Column(name = "start_recording", nullable = false) - private boolean startRecording = false; - - /** - * @see Client#isStartStreaming() - */ - @Column(name = "start_streaming", nullable = false) - private boolean startStreaming = false; - - /** - * @see Client#isScreenPublishStarted() - */ - @Column(name = "screen_publish_started", nullable = false) - private boolean screenPublishStarted = false; - - /** - * @see Client#isStreamPublishStarted() - */ - @Column(name = "stream_publish_started", nullable = false) - private boolean streamPublishStarted = false; - - /** - * @see Client#getIsBroadcasting() - */ - @Column(name = "is_broadcasting", nullable = false) - private boolean isBroadcasting = false; - - /** - * @see Client#getExternalUserId() - */ - @Column(name = "external_user_id") - private String externalUserId; - - /** - * @see Client#getExternalUserType() - */ - @Column(name = "external_user_type") - private String externalUserType; - - /** - * @see Client#getInterviewPodId() - */ - @Column(name = "interview_pod_id") - private Integer interviewPodId = null; - - /** - * @see Client#isAllowRecording() - */ - @Column(name = "allow_recording", nullable = false) - private boolean allowRecording = true; - - /** - * @see Client#getZombieCheckFlag() - */ - @Column(name = "zombie_check_flag", nullable = false) - private boolean zombieCheckFlag = false; - - /** - * @see Client#getMicMuted() - */ - @Column(name = "mic_muted", nullable = false) - private boolean micMuted = false; - - /** - * @see Client#isSipTransport() - */ - @Column(name = "sip_transport", nullable = false) - private boolean sipTransport = false; - - @Column(name = "mobile", nullable = false) - private boolean mobile = false; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "server_id") - private Server server; - - public Client() {} - - public Client(String streamid, String publicSID, Long roomId, - Long userId, String firstname, String lastname, - String username, String connectedSince, String scope) { - super(); - this.streamid = streamid; - this.publicSID = publicSID; - this.roomId = roomId; - this.userId = userId; - this.firstname = firstname; - this.lastname = lastname; - this.username = username; - this.connectedSince = CalendarPatterns.parseDateWithHour(connectedSince); - this.scope = scope; - } - - public void setUserObject(Long userId, String username, String firstname, String lastname) { - this.userId = userId; - this.username = username; - this.firstname = firstname; - this.lastname = lastname; - } - - public void setUserObject(String username, String firstname, String lastname) { - this.username = username; - this.firstname = firstname; - this.lastname = lastname; - } - - @Override - public Long getId() { - return id; - } - - @Override - public void setId(Long id) { - this.id = id; - } - - public Date getConnectedSince() { - return connectedSince; - } - - public void setConnectedSince(Date connectedSince) { - this.connectedSince = connectedSince; - } - - public boolean getIsMod() { - return isMod; - } - - public void setIsMod(boolean isMod) { - this.isMod = isMod; - } - - public String getUsername() { - return username; - } - - public void setUsername(String username) { - this.username = username; - } - - public String getStreamid() { - return streamid; - } - - public void setStreamid(String streamid) { - this.streamid = streamid; - } - - public String getScope() { - return scope; - } - - public void setScope(String scope) { - this.scope = scope; - StringValue scn = StringValue.valueOf(scope); - long roomId = scn.toLong(Long.MIN_VALUE); - if (roomId > 0) { - this.roomId = roomId; - } - } - - public String getFormatedDate() { - return formatedDate; - } - - public void setFormatedDate(String formatedDate) { - this.formatedDate = formatedDate; - } - - public String getUsercolor() { - return usercolor; - } - - public void setUsercolor(String usercolor) { - this.usercolor = usercolor; - } - - public Integer getUserpos() { - return userpos; - } - - public void setUserpos(Integer userpos) { - this.userpos = userpos; - } - - public String getUserip() { - return userip; - } - - public void setUserip(String userip) { - this.userip = userip; - } - - public String getSwfurl() { - return swfurl; - } - - public void setSwfurl(String swfurl) { - this.swfurl = swfurl; - } - - public int getUserport() { - return userport; - } - - public void setUserport(int userport) { - this.userport = userport; - } - - public String getFirstname() { - return firstname; - } - - public void setFirstname(String firstname) { - this.firstname = firstname; - } - - public String getLanguage() { - return language; - } - - public void setLanguage(String language) { - this.language = language; - } - - public String getLastLogin() { - return lastLogin; - } - - public void setLastLogin(String lastLogin) { - this.lastLogin = lastLogin; - } - - public String getLastname() { - return lastname; - } - - public void setLastname(String lastname) { - this.lastname = lastname; - } - - public String getEmail() { - return email; - } - - public void setEmail(String email) { - this.email = email; - } - - public String getSecurityCode() { - return securityCode; - } - - public void setSecurityCode(String securityCode) { - this.securityCode = securityCode; - } - - public String getPicture_uri() { - return picture_uri; - } - - public void setPicture_uri(String picture_uri) { - this.picture_uri = picture_uri; - } - - public Long getUserId() { - return userId; - } - - public void setUserId(Long userId) { - this.userId = userId; - } - - public Long getRoomId() { - return roomId; - } - - public void setRoomId(Long roomId) { - this.roomId = roomId; - } - - public Date getRoomEnter() { - return roomEnter; - } - - public void setRoomEnter(Date roomEnter) { - this.roomEnter = roomEnter; - } - - public boolean getIsRecording() { - return isRecording; - } - - public void setIsRecording(boolean isRecording) { - this.isRecording = isRecording; - } - - public String getRoomRecordingName() { - return roomRecordingName; - } - - public void setRoomRecordingName(String roomRecordingName) { - this.roomRecordingName = roomRecordingName; - } - - public String getAvsettings() { - return avsettings; - } - - public void setAvsettings(String avsettings) { - this.avsettings = avsettings; - } - - public long getBroadCastID() { - return broadCastID; - } - - public void setBroadCastID(long broadCastID) { - this.broadCastID = broadCastID; - } - - public String getPublicSID() { - return publicSID; - } - - public void setPublicSID(String publicSID) { - this.publicSID = publicSID; - } - - public String getOwnerSid() { - return ownerSid; - } - - public void setOwnerSid(String ownerSid) { - this.ownerSid = ownerSid; - } - - public boolean getZombieCheckFlag() { - return zombieCheckFlag; - } - - public void setZombieCheckFlag(boolean zombieCheckFlag) { - this.zombieCheckFlag = zombieCheckFlag; - } - - public boolean getMicMuted() { - return micMuted; - } - - public void setMicMuted(boolean micMuted) { - this.micMuted = micMuted; - } - - public boolean getCanDraw() { - return canDraw; - } - - public void setCanDraw(boolean canDraw) { - this.canDraw = canDraw; - } - - public boolean getIsBroadcasting() { - return isBroadcasting; - } - - public void setIsBroadcasting(boolean isBroadcasting) { - this.isBroadcasting = isBroadcasting; - } - - public boolean getCanShare() { - return canShare; - } - - public void setCanShare(boolean canShare) { - this.canShare = canShare; - } - - public String getExternalUserId() { - return externalUserId; - } - - public void setExternalUserId(String externalUserId) { - this.externalUserId = externalUserId; - } - - public String getExternalUserType() { - return externalUserType; - } - - public void setExternalUserType(String externalUserType) { - this.externalUserType = externalUserType; - } - - public boolean getIsSuperModerator() { - return isSuperModerator; - } - - public void setIsSuperModerator(boolean isSuperModerator) { - this.isSuperModerator = isSuperModerator; - } - - public boolean isScreenClient() { - return screenClient; - } - - public void setScreenClient(boolean screenClient) { - this.screenClient = screenClient; - } - - public int getVWidth() { - return vWidth; - } - - public void setVWidth(int width) { - vWidth = width; - } - - public int getVHeight() { - return vHeight; - } - - public void setVHeight(int height) { - vHeight = height; - } - - public int getVX() { - return vX; - } - - public void setVX(int vx) { - vX = vx; - } - - public int getVY() { - return vY; - } - - public void setVY(int vy) { - vY = vy; - } - - public String getStreamPublishName() { - return streamPublishName; - } - - public void setStreamPublishName(String streamPublishName) { - this.streamPublishName = streamPublishName; - } - - public Long getRecordingId() { - return recordingId; - } - - public void setRecordingId(Long recordingId) { - this.recordingId = recordingId; - } - - public Long getRecordingMetaDataId() { - return recordingMetaDataId; - } - - public void setRecordingMetaDataId(Long recordingMetaDataId) { - this.recordingMetaDataId = recordingMetaDataId; - } - - public boolean isScreenPublishStarted() { - return screenPublishStarted; - } - - public void setScreenPublishStarted(boolean screenPublishStarted) { - this.screenPublishStarted = screenPublishStarted; - } - - public boolean isStartRecording() { - return startRecording; - } - - public void setStartRecording(boolean startRecording) { - this.startRecording = startRecording; - } - - public boolean isStartStreaming() { - return startStreaming; - } - - public void setStartStreaming(boolean startStreaming) { - this.startStreaming = startStreaming; - } - - public Integer getInterviewPodId() { - return interviewPodId; - } - - public void setInterviewPodId(Integer interviewPodId) { - this.interviewPodId = interviewPodId; - } - - public boolean getCanRemote() { - return canRemote; - } - - public void setCanRemote(boolean canRemote) { - this.canRemote = canRemote; - } - - public boolean getCanGiveAudio() { - return canGiveAudio; - } - - public void setCanGiveAudio(boolean canGiveAudio) { - this.canGiveAudio = canGiveAudio; - } - - public boolean getCanVideo() { - return canVideo; - } - - public void setCanVideo(boolean canVideo) { - this.canVideo = canVideo; - } - - public boolean isAllowRecording() { - return allowRecording; - } - - public void setAllowRecording(boolean allowRecording) { - this.allowRecording = allowRecording; - } - - public boolean isStreamPublishStarted() { - return streamPublishStarted; - } - - public void setStreamPublishStarted(boolean streamPublishStarted) { - this.streamPublishStarted = streamPublishStarted; - } - - public boolean isSipTransport() { - return sipTransport; - } - - public void setSipTransport(boolean sipTransport) { - this.sipTransport = sipTransport; - } - - public Server getServer() { - return server; - } - - public void setServer(Server server) { - this.server = server; - } - - public boolean isMobile() { - return mobile; - } - - public void setMobile(boolean mobile) { - this.mobile = mobile; - } - - public String getTcUrl() { - return tcUrl; - } - - public void setTcUrl(String tcUrl) { - this.tcUrl = tcUrl; - } - - public boolean isNativeSsl() { - return nativeSsl; - } - - public void setNativeSsl(boolean nativeSsl) { - this.nativeSsl = nativeSsl; - } - - @Override - public String toString() { - return "Client [streamid=" + streamid + ", publicSID=" + publicSID + ", isScreenClient=" + screenClient - + ", isMobile = " + mobile + ", roomId=" + roomId + ", broadCastID=" + broadCastID + ", userId=" - + userId + ", avsettings=" + avsettings + ", isRecording=" + isRecording + ", recordingId=" - + recordingId + ", recordingMetaDataId=" + recordingMetaDataId + ", screenPublishStarted=" - + screenPublishStarted + ", interviewPodId=" + interviewPodId + ", server=" + server + "]"; - } -}
http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java index becb29f..cdaa898 100644 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java @@ -302,7 +302,7 @@ public class Room implements IDataProviderEntity { private List<RoomGroup> roomGroups = new ArrayList<>(); @Transient - private List<Client> currentusers; + private List<StreamClient> currentusers; public String getComment() { return comment; @@ -370,11 +370,11 @@ public class Room implements IDataProviderEntity { this.ispublic = ispublic; } - public List<Client> getCurrentusers() { + public List<StreamClient> getCurrentusers() { return currentusers; } - public void setCurrentusers(List<Client> currentusers) { + public void setCurrentusers(List<StreamClient> currentusers) { this.currentusers = currentusers; } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java new file mode 100644 index 0000000..a532a73 --- /dev/null +++ b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/StreamClient.java @@ -0,0 +1,607 @@ +/* + * 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.db.entity.room; + +import java.util.Date; + +import org.apache.openmeetings.db.entity.basic.IClient; +import org.apache.openmeetings.util.CalendarPatterns; +import org.apache.wicket.util.string.StringValue; + +/** + * Can be configured to be stored in memory or in database + * + * @author sebawagner + */ +public class StreamClient implements IClient { + private static final long serialVersionUID = 1L; + + private String username = ""; + private String streamid = ""; + private String scope = ""; + private int vWidth = 0; + private int vHeight = 0; + private int vX = 0; + private int vY = 0; + private String streamPublishName = ""; + private String publicSID = ""; + private String ownerSid = null; + private boolean isMod = false; + private boolean isSuperModerator = false; + private boolean canDraw = false; + private boolean canShare = false; + private boolean canRemote = false; + private boolean canGiveAudio = false; + private boolean canVideo = false; + private Date connectedSince; + private String formatedDate; + private boolean screenClient; + private String usercolor; + private Integer userpos; + private String userip; + private int userport; + private Long roomId; + private Date roomEnter = null; + private long broadCastID = -2; + private Long userId = null; + private String firstname = ""; + private String lastname = ""; + private String email; + private String lastLogin; + private String securityCode; + private String picture_uri; + private String language = ""; + private String avsettings = ""; + private String swfurl; + private String tcUrl; + private boolean nativeSsl = false; + private boolean isRecording = false; + private String roomRecordingName; + private Long recordingId; + private Long recordingMetaDataId; + private boolean startRecording = false; + private boolean startStreaming = false; + private boolean screenPublishStarted = false; + private boolean streamPublishStarted = false; + private boolean isBroadcasting = false; + private String externalUserId; + private String externalUserType; + private Integer interviewPodId = null; + private boolean allowRecording = true; + private boolean zombieCheckFlag = false; + private boolean micMuted = false; + private boolean sipTransport = false; + private boolean mobile = false; + private String serverId = null; + + public StreamClient() {} + + public StreamClient(String streamid, String publicSID, Long roomId, + Long userId, String firstname, String lastname, + String username, String connectedSince, String scope) { + super(); + this.streamid = streamid; + this.publicSID = publicSID; + this.roomId = roomId; + this.userId = userId; + this.firstname = firstname; + this.lastname = lastname; + this.username = username; + this.connectedSince = CalendarPatterns.parseDateWithHour(connectedSince); + this.scope = scope; + } + + public void setUserObject(Long userId, String username, String firstname, String lastname) { + this.userId = userId; + this.username = username; + this.firstname = firstname; + this.lastname = lastname; + } + + public void setUserObject(String username, String firstname, String lastname) { + this.username = username; + this.firstname = firstname; + this.lastname = lastname; + } + + @Override + public Long getId() { + return null; + } + + @Override + public void setId(Long id) { + } + + @Override + public String getUid() { + return publicSID; + } + + public Date getConnectedSince() { + return connectedSince; + } + + public void setConnectedSince(Date connectedSince) { + this.connectedSince = connectedSince; + } + + public boolean getIsMod() { + return isMod; + } + + public void setIsMod(boolean isMod) { + this.isMod = isMod; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getStreamid() { + return streamid; + } + + public void setStreamid(String streamid) { + this.streamid = streamid; + } + + public String getScope() { + return scope; + } + + public void setScope(String scope) { + this.scope = scope; + StringValue scn = StringValue.valueOf(scope); + long roomId = scn.toLong(Long.MIN_VALUE); + if (roomId > 0) { + this.roomId = roomId; + } + } + + public String getFormatedDate() { + return formatedDate; + } + + public void setFormatedDate(String formatedDate) { + this.formatedDate = formatedDate; + } + + public String getUsercolor() { + return usercolor; + } + + public void setUsercolor(String usercolor) { + this.usercolor = usercolor; + } + + public Integer getUserpos() { + return userpos; + } + + public void setUserpos(Integer userpos) { + this.userpos = userpos; + } + + public String getUserip() { + return userip; + } + + public void setUserip(String userip) { + this.userip = userip; + } + + public String getSwfurl() { + return swfurl; + } + + public void setSwfurl(String swfurl) { + this.swfurl = swfurl; + } + + public int getUserport() { + return userport; + } + + public void setUserport(int userport) { + this.userport = userport; + } + + public String getFirstname() { + return firstname; + } + + public void setFirstname(String firstname) { + this.firstname = firstname; + } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + public String getLastLogin() { + return lastLogin; + } + + public void setLastLogin(String lastLogin) { + this.lastLogin = lastLogin; + } + + public String getLastname() { + return lastname; + } + + public void setLastname(String lastname) { + this.lastname = lastname; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public String getSecurityCode() { + return securityCode; + } + + public void setSecurityCode(String securityCode) { + this.securityCode = securityCode; + } + + public String getPicture_uri() { + return picture_uri; + } + + public void setPicture_uri(String picture_uri) { + this.picture_uri = picture_uri; + } + + public Long getUserId() { + return userId; + } + + public void setUserId(Long userId) { + this.userId = userId; + } + + public Long getRoomId() { + return roomId; + } + + public void setRoomId(Long roomId) { + this.roomId = roomId; + } + + public Date getRoomEnter() { + return roomEnter; + } + + public void setRoomEnter(Date roomEnter) { + this.roomEnter = roomEnter; + } + + public boolean getIsRecording() { + return isRecording; + } + + public void setIsRecording(boolean isRecording) { + this.isRecording = isRecording; + } + + public String getRoomRecordingName() { + return roomRecordingName; + } + + public void setRoomRecordingName(String roomRecordingName) { + this.roomRecordingName = roomRecordingName; + } + + public String getAvsettings() { + return avsettings; + } + + public void setAvsettings(String avsettings) { + this.avsettings = avsettings; + } + + public long getBroadCastID() { + return broadCastID; + } + + public void setBroadCastID(long broadCastID) { + this.broadCastID = broadCastID; + } + + public String getPublicSID() { + return publicSID; + } + + public void setPublicSID(String publicSID) { + this.publicSID = publicSID; + } + + public String getOwnerSid() { + return ownerSid; + } + + public void setOwnerSid(String ownerSid) { + this.ownerSid = ownerSid; + } + + public boolean getZombieCheckFlag() { + return zombieCheckFlag; + } + + public void setZombieCheckFlag(boolean zombieCheckFlag) { + this.zombieCheckFlag = zombieCheckFlag; + } + + public boolean getMicMuted() { + return micMuted; + } + + public void setMicMuted(boolean micMuted) { + this.micMuted = micMuted; + } + + public boolean getCanDraw() { + return canDraw; + } + + public void setCanDraw(boolean canDraw) { + this.canDraw = canDraw; + } + + public boolean getIsBroadcasting() { + return isBroadcasting; + } + + public void setIsBroadcasting(boolean isBroadcasting) { + this.isBroadcasting = isBroadcasting; + } + + public boolean getCanShare() { + return canShare; + } + + public void setCanShare(boolean canShare) { + this.canShare = canShare; + } + + public String getExternalUserId() { + return externalUserId; + } + + public void setExternalUserId(String externalUserId) { + this.externalUserId = externalUserId; + } + + public String getExternalUserType() { + return externalUserType; + } + + public void setExternalUserType(String externalUserType) { + this.externalUserType = externalUserType; + } + + public boolean getIsSuperModerator() { + return isSuperModerator; + } + + public void setIsSuperModerator(boolean isSuperModerator) { + this.isSuperModerator = isSuperModerator; + } + + public boolean isScreenClient() { + return screenClient; + } + + public void setScreenClient(boolean screenClient) { + this.screenClient = screenClient; + } + + public int getVWidth() { + return vWidth; + } + + public void setVWidth(int width) { + vWidth = width; + } + + public int getVHeight() { + return vHeight; + } + + public void setVHeight(int height) { + vHeight = height; + } + + public int getVX() { + return vX; + } + + public void setVX(int vx) { + vX = vx; + } + + public int getVY() { + return vY; + } + + public void setVY(int vy) { + vY = vy; + } + + public String getStreamPublishName() { + return streamPublishName; + } + + public void setStreamPublishName(String streamPublishName) { + this.streamPublishName = streamPublishName; + } + + public Long getRecordingId() { + return recordingId; + } + + public void setRecordingId(Long recordingId) { + this.recordingId = recordingId; + } + + public Long getRecordingMetaDataId() { + return recordingMetaDataId; + } + + public void setRecordingMetaDataId(Long recordingMetaDataId) { + this.recordingMetaDataId = recordingMetaDataId; + } + + public boolean isScreenPublishStarted() { + return screenPublishStarted; + } + + public void setScreenPublishStarted(boolean screenPublishStarted) { + this.screenPublishStarted = screenPublishStarted; + } + + public boolean isStartRecording() { + return startRecording; + } + + public void setStartRecording(boolean startRecording) { + this.startRecording = startRecording; + } + + public boolean isStartStreaming() { + return startStreaming; + } + + public void setStartStreaming(boolean startStreaming) { + this.startStreaming = startStreaming; + } + + public Integer getInterviewPodId() { + return interviewPodId; + } + + public void setInterviewPodId(Integer interviewPodId) { + this.interviewPodId = interviewPodId; + } + + public boolean getCanRemote() { + return canRemote; + } + + public void setCanRemote(boolean canRemote) { + this.canRemote = canRemote; + } + + public boolean getCanGiveAudio() { + return canGiveAudio; + } + + public void setCanGiveAudio(boolean canGiveAudio) { + this.canGiveAudio = canGiveAudio; + } + + public boolean getCanVideo() { + return canVideo; + } + + public void setCanVideo(boolean canVideo) { + this.canVideo = canVideo; + } + + public boolean isAllowRecording() { + return allowRecording; + } + + public void setAllowRecording(boolean allowRecording) { + this.allowRecording = allowRecording; + } + + public boolean isStreamPublishStarted() { + return streamPublishStarted; + } + + public void setStreamPublishStarted(boolean streamPublishStarted) { + this.streamPublishStarted = streamPublishStarted; + } + + public boolean isSipTransport() { + return sipTransport; + } + + public void setSipTransport(boolean sipTransport) { + this.sipTransport = sipTransport; + } + + @Override + public String getServerId() { + return serverId; + } + + public void setServerId(String serverId) { + this.serverId = serverId; + } + + public boolean isMobile() { + return mobile; + } + + public void setMobile(boolean mobile) { + this.mobile = mobile; + } + + public String getTcUrl() { + return tcUrl; + } + + public void setTcUrl(String tcUrl) { + this.tcUrl = tcUrl; + } + + public boolean isNativeSsl() { + return nativeSsl; + } + + public void setNativeSsl(boolean nativeSsl) { + this.nativeSsl = nativeSsl; + } + + @Override + public String toString() { + return "Client [streamid=" + streamid + ", publicSID=" + publicSID + ", isScreenClient=" + screenClient + + ", isMobile = " + mobile + ", roomId=" + roomId + ", broadCastID=" + broadCastID + ", userId=" + + userId + ", avsettings=" + avsettings + ", isRecording=" + isRecording + ", recordingId=" + + recordingId + ", recordingMetaDataId=" + recordingMetaDataId + ", screenPublishStarted=" + + screenPublishStarted + ", interviewPodId=" + interviewPodId + ", server=" + serverId + "]"; + } +} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Server.java ---------------------------------------------------------------------- diff --git a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Server.java b/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Server.java deleted file mode 100644 index 046bc92..0000000 --- a/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/server/Server.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * 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.db.entity.server; - -import java.util.Calendar; -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.Lob; -import javax.persistence.ManyToOne; -import javax.persistence.NamedQueries; -import javax.persistence.NamedQuery; -import javax.persistence.Table; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlRootElement; - -import org.apache.openjpa.persistence.jdbc.ForeignKey; -import org.apache.openmeetings.db.entity.IDataProviderEntity; -import org.apache.openmeetings.db.entity.user.User; -import org.simpleframework.xml.Element; -import org.simpleframework.xml.Root; - -@Entity -@NamedQueries({ - @NamedQuery(name = "getAllServers", query = "SELECT s FROM Server s WHERE s.deleted = false ORDER BY s.id"), - @NamedQuery(name = "getServerCount", query = "SELECT COUNT(s) FROM Server s WHERE s.deleted = false"), - @NamedQuery(name = "getServerById", query = "SELECT s FROM Server s LEFT JOIN FETCH s.insertedby LEFT JOIN FETCH s.updatedby WHERE s.deleted = false AND s.id = :id"), - @NamedQuery(name = "getServerByName", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.name LIKE :name"), - @NamedQuery(name = "getServerByAddress", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.address LIKE :address"), - @NamedQuery(name = "getServersWithNoUsers", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.id NOT IN (SELECT u.server.id FROM User u where u.server.id IS NOT NULL)"), - @NamedQuery(name = "getServerWithMinimumUsers", query = "SELECT s.id, COUNT(u) AS cnt FROM User u JOIN u.server s WHERE s.deleted = false GROUP BY s.id ORDER BY cnt"), - @NamedQuery(name = "getActiveServers", query = "SELECT s FROM Server s WHERE s.deleted = false AND s.active = true") // -}) -@Table(name = "server") -@Root -@XmlRootElement -@XmlAccessorType(XmlAccessType.FIELD) -public class Server implements IDataProviderEntity { - private static final long serialVersionUID = 1L; - - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - @Column(name = "id") - @Element(data = true) - private Long id; - - @Column(name = "name") - @Element(data = true) - private String name; - - @Column(name = "address") - @Element(data = true) - private String address; - - @Column(name = "inserted") - public Date inserted; - - @Column(name = "updated") - public Date updated; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "insertedby_id", updatable = true, insertable = true) - @ForeignKey(enabled = true) - public User insertedby; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "updatedby_id", updatable = true, insertable = true) - @ForeignKey(enabled = true) - public User updatedby; - - @Lob - @Column(name = "comment", length = 2048) - @Element(data = true, required = false) - private String comment; - - @Column(name = "last_ping", nullable = true) - @Element(data = true, required = false) - private Calendar lastPing; - - @Column(name = "port", nullable = true) - @Element(data = true, required = false) - private int port; - - @Column(name = "protocol", nullable = true) - @Element(data = true, required = false) - private String protocol; - - @Column(name = "webapp", nullable = true) - @Element(data = true, required = false) - private String webapp; - - @Column(name = "login", nullable = true) - @Element(data = true, required = false) - private String user; - - @Column(name = "pass", nullable = true) - @Element(data = true, required = false) - private String pass; - - @Column(name = "active", nullable = false) - @Element(data = true, required = false) - private boolean active; - - @Column(name = "deleted", nullable = false) - @Element(data = true) - private boolean deleted = false; - - @Override - public Long getId() { - return id; - } - - @Override - public void setId(Long id) { - this.id = id; - } - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public String getAddress() { - return address; - } - - public void setAddress(String address) { - this.address = address; - } - - public boolean isDeleted() { - return deleted; - } - - public void setDeleted(boolean deleted) { - this.deleted = deleted; - } - - public Date getInserted() { - return inserted; - } - - public void setInserted(Date inserted) { - this.inserted = inserted; - } - - public Date getUpdated() { - return updated; - } - - public void setUpdated(Date updated) { - this.updated = updated; - } - - public User getInsertedby() { - return insertedby; - } - - public void setInsertedby(User insertedby) { - this.insertedby = insertedby; - } - - public User getUpdatedby() { - return updatedby; - } - - public void setUpdatedby(User updatedby) { - this.updatedby = updatedby; - } - - public String getComment() { - return comment; - } - - public void setComment(String comment) { - this.comment = comment; - } - - public Calendar getLastPing() { - return lastPing; - } - - public void setLastPing(Calendar lastPing) { - this.lastPing = lastPing; - } - - public int getPort() { - return port; - } - - public void setPort(int port) { - this.port = port; - } - - public String getProtocol() { - return protocol; - } - - public void setProtocol(String protocol) { - this.protocol = protocol; - } - - public String getWebapp() { - return webapp; - } - - public void setWebapp(String webapp) { - this.webapp = webapp; - } - - public String getUser() { - return user; - } - - public void setUser(String user) { - this.user = user; - } - - public String getPass() { - return pass; - } - - public void setPass(String pass) { - this.pass = pass; - } - - public void setId(long id) { - this.id = id; - } - - public boolean isActive() { - return active; - } - - public void setActive(boolean active) { - this.active = active; - } - - @Override - public String toString() { - return "Server [id=" + id + ", name=" + name + ", address=" + address - + ", port=" + port + ", user=" + user + ", pass=" + pass - + ", protocol=" + protocol - + ", active=" + active + ", webapp=" + webapp + ", deleted=" - + deleted + "]"; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result + ((address == null) ? 0 : address.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - Server other = (Server) obj; - if (address == null) { - if (other.address != null) - return false; - } else if (!address.equals(other.address)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - return true; - } -} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx ---------------------------------------------------------------------- diff --git a/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx b/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx index cf77111..d0ec07a 100644 --- a/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx +++ b/openmeetings-flash/src/main/swf/base/hibernate/hibRtmpConnection.lzx @@ -249,14 +249,6 @@ </handler> </netRemoteCallHib> - <netRemoteCallHib name="overwritePublicSID" funcname="overwritePublicSID" > - <netparam><method name="getValue"> return canvas.publicSID;</method></netparam> - <handler name="ondata" args="value"> - //The onResult-Handler will be called be the rtmpconnection - if ($debug) Debug.write("overwritePublicSID: ",value); - </handler> - </netRemoteCallHib> - <method name="setDefaultUserLanguage"> <![CDATA[ if (userlang == -1 && canvas.language_id != 0) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java ---------------------------------------------------------------------- diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java index 267d178..17bf2e7 100644 --- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java +++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java @@ -49,7 +49,6 @@ import org.apache.openmeetings.db.dao.room.RoomDao; import org.apache.openmeetings.db.dao.room.RoomGroupDao; import org.apache.openmeetings.db.dao.server.LdapConfigDao; import org.apache.openmeetings.db.dao.server.OAuth2Dao; -import org.apache.openmeetings.db.dao.server.ServerDao; import org.apache.openmeetings.db.dao.user.GroupDao; import org.apache.openmeetings.db.dao.user.PrivateMessageDao; import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao; @@ -124,8 +123,6 @@ public class BackupExport { @Autowired private OAuth2Dao auth2Dao; @Autowired - private ServerDao serverDao; - @Autowired private GroupDao groupDao; @Autowired private RoomDao roomDao; @@ -249,12 +246,6 @@ public class BackupExport { progressHolder.setProgress(35); /* - * ##################### Cluster servers - */ - writeList(ser, zos, "servers.xml", "servers", serverDao.get(0, Integer.MAX_VALUE)); - progressHolder.setProgress(40); - - /* * ##################### OAuth2 servers */ writeList(ser, zos, "oauth2servers.xml", "oauth2servers", auth2Dao.get(0, Integer.MAX_VALUE)); http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java ---------------------------------------------------------------------- diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java index c4660c7..fad26ab 100644 --- a/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java +++ b/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java @@ -81,7 +81,6 @@ import org.apache.openmeetings.db.dao.room.RoomDao; import org.apache.openmeetings.db.dao.room.RoomGroupDao; import org.apache.openmeetings.db.dao.server.LdapConfigDao; import org.apache.openmeetings.db.dao.server.OAuth2Dao; -import org.apache.openmeetings.db.dao.server.ServerDao; import org.apache.openmeetings.db.dao.user.GroupDao; import org.apache.openmeetings.db.dao.user.PrivateMessageDao; import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao; @@ -104,7 +103,6 @@ import org.apache.openmeetings.db.entity.room.RoomPoll; import org.apache.openmeetings.db.entity.room.RoomPollAnswer; import org.apache.openmeetings.db.entity.server.LdapConfig; import org.apache.openmeetings.db.entity.server.OAuthServer; -import org.apache.openmeetings.db.entity.server.Server; import org.apache.openmeetings.db.entity.user.Address; import org.apache.openmeetings.db.entity.user.Group; import org.apache.openmeetings.db.entity.user.GroupUser; @@ -172,8 +170,6 @@ public class BackupImport { @Autowired private ChatDao chatDao; @Autowired - private ServerDao serverDao; - @Autowired private OAuth2Dao auth2Dao; @Autowired private GroupDao groupDao; @@ -519,19 +515,7 @@ public class BackupImport { } } - log.info("Meeting members import complete, starting cluster server import"); - /* - * ##################### Cluster servers - */ - { - List<Server> list = readList(simpleSerializer, f, "servers.xml", "servers", Server.class, true); - for (Server s : list) { - s.setId(null); - serverDao.update(s, null); - } - } - - log.info("Cluster servers import complete, starting recordings import"); + log.info("Meeting members import complete, starting recordings server import"); /* * ##################### Import Recordings */ http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java ---------------------------------------------------------------------- diff --git a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java index 336c91f..3c1212f 100644 --- a/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java +++ b/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java @@ -159,8 +159,7 @@ public class ImportInitvalues { navimanagement.addMainStructure("adminModuleLDAP", null, 20, "1103", LEVEL_ADMIN, "Administration of LDAP Configs", admin.getId(), "1460"); navimanagement.addMainStructure("adminModuleOAuth", null, 21, "1571", LEVEL_ADMIN, "Administration of OAuth2 servers", admin.getId(), "1572"); navimanagement.addMainStructure("adminModuleBackup", null, 22, "367", LEVEL_ADMIN, "Administration of Backups", admin.getId(), "1461"); - navimanagement.addMainStructure("adminModuleServers", null, 23, "1498", LEVEL_ADMIN, "Administration of Servers", admin.getId(), "1499"); - navimanagement.addMainStructure("adminModuleEmail", null, 24, "main.menu.admin.email", LEVEL_ADMIN, "Administration of Emails", admin.getId(), "main.menu.admin.email.desc"); + navimanagement.addMainStructure("adminModuleEmail", null, 23, "main.menu.admin.email", LEVEL_ADMIN, "Administration of Emails", admin.getId(), "main.menu.admin.email.desc"); log.debug("MainMenu ADDED"); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-server/src/site/xdoc/Clustering.xml ---------------------------------------------------------------------- diff --git a/openmeetings-server/src/site/xdoc/Clustering.xml b/openmeetings-server/src/site/xdoc/Clustering.xml index e791f6e..a76ac5f 100644 --- a/openmeetings-server/src/site/xdoc/Clustering.xml +++ b/openmeetings-server/src/site/xdoc/Clustering.xml @@ -132,22 +132,12 @@ ]]></source> </li> <li> - <p>In the file <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/applicationContext.xml</tt>:</p> + <p>In the file <tt>/opt/red5/webapps/openmeetings/WEB-INF/classes/hazelcast.xml</tt>:</p> <ul> + <li>Set <tt>instance-name</tt> for each server to unique value</li> <li> - For each node uncomment line: - <source> -<![CDATA[ -<!-- Need to be uncommented and set to the real ID if in cluster mode--> -<property name="serverId" value="1" /> -]]> - </source> - and input the unique value for each node. - </li> - <li> - Replace <tt><ref bean="openmeetings.HashMapStore" /> <!-- Memory based session cache by default --></tt><br/> - with <tt><ref bean="openmeetings.DatabaseStore" /></tt> - (Currently commented out with following comment: <tt>"The following section should be used in clustering mode"</tt>) + In case there are more than one network interface with multicast support and/or additional hazelcast configuration is required + Based on the following documentation: <a href="http://docs.hazelcast.org/docs/3.8.3/manual/html-single/index.html">http://docs.hazelcast.org/docs/3.8.3/manual/html-single/index.html</a> </li> </ul> </li> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java ---------------------------------------------------------------------- diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java index bcef9cf..489751d 100644 --- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java +++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/CleanupJob.java @@ -31,7 +31,7 @@ import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.commons.lang3.math.NumberUtils; import org.apache.openmeetings.core.data.whiteboard.WhiteboardCache; -import org.apache.openmeetings.core.session.SessionManager; +import org.apache.openmeetings.db.dao.server.ISessionManager; import org.apache.openmeetings.db.dao.server.SessiondataDao; import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dto.room.Whiteboard; @@ -52,7 +52,7 @@ public class CleanupJob extends AbstractJob { @Autowired private SessiondataDao sessionDao; @Autowired - private SessionManager sessionManager; + private ISessionManager sessionManager; @Autowired private WhiteboardCache wbManager; @Autowired @@ -128,7 +128,7 @@ public class CleanupJob extends AbstractJob { } } } - if (folder.isDirectory() && roomId != null && sessionManager.getClientListByRoom(roomId).isEmpty()) { + if (folder.isDirectory() && roomId != null && sessionManager.listByRoom(roomId).isEmpty()) { File[] files = folder.listFiles(); //TODO need to rework this and remove hardcodings if (files != null) { http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java ---------------------------------------------------------------------- diff --git a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java index d09f748..6e8361a 100644 --- a/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java +++ b/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java @@ -52,7 +52,7 @@ import org.apache.openmeetings.db.dao.user.GroupDao; import org.apache.openmeetings.db.dao.user.IUserManager; import org.apache.openmeetings.db.dao.user.UserDao; import org.apache.openmeetings.db.dto.basic.SearchResult; -import org.apache.openmeetings.db.entity.room.Client; +import org.apache.openmeetings.db.entity.room.StreamClient; import org.apache.openmeetings.db.entity.server.Sessiondata; import org.apache.openmeetings.db.entity.user.Address; import org.apache.openmeetings.db.entity.user.GroupUser; @@ -410,7 +410,7 @@ public class UserManager implements IUserManager { * @return */ @Override - public boolean kickUserByStreamId(String sid, Long room_id) { + public boolean kickUsersByRoomId(String sid, Long room_id) { try { Sessiondata sd = sessionDao.check(sid); // admins only @@ -418,7 +418,7 @@ public class UserManager implements IUserManager { sessionDao.clearSessionByRoomId(room_id); - for (Client rcl : sessionManager.getClientListByRoom(room_id)) { + for (StreamClient rcl : sessionManager.listByRoom(room_id)) { if (rcl == null) { return true; } @@ -442,12 +442,12 @@ public class UserManager implements IUserManager { } @Override - public boolean kickUserByPublicSID(String sid, String publicSID) { + public boolean kickClient(String sid, String uid) { try { Sessiondata sd = sessionDao.check(sid); // admins only if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(sd.getUserId()))) { - Client rcl = sessionManager.getClientByPublicSID(publicSID, null); + StreamClient rcl = sessionManager.get(uid); if (rcl == null) { return true; http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-web/pom.xml ---------------------------------------------------------------------- diff --git a/openmeetings-web/pom.xml b/openmeetings-web/pom.xml index 89db6ea..25c975f 100644 --- a/openmeetings-web/pom.xml +++ b/openmeetings-web/pom.xml @@ -407,6 +407,11 @@ <version>${wickets.version}</version> </dependency> <dependency> + <groupId>org.wicketstuff</groupId> + <artifactId>wicketstuff-datastore-hazelcast</artifactId> + <version>${wickets.version}</version> + </dependency> + <dependency> <groupId>org.apache.wicket</groupId> <artifactId>wicket-auth-roles</artifactId> <version>${wicket.version}</version> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java index b213480..b23baab 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/connection/ConnectionsPanel.java @@ -28,9 +28,10 @@ import java.util.Iterator; import java.util.List; import org.apache.openmeetings.db.dao.server.ISessionManager; -import org.apache.openmeetings.db.dao.user.IUserService; +import org.apache.openmeetings.db.dao.user.IUserManager; +import org.apache.openmeetings.db.entity.basic.Client; import org.apache.openmeetings.db.entity.basic.IClient; -import org.apache.openmeetings.db.entity.room.Client; +import org.apache.openmeetings.db.entity.room.StreamClient; import org.apache.openmeetings.web.admin.AdminPanel; import org.apache.openmeetings.web.admin.SearchableDataView; import org.apache.openmeetings.web.app.Application; @@ -58,7 +59,7 @@ public class ConnectionsPanel extends AdminPanel { private List<IClient> list() { List<IClient> l = new ArrayList<>(); - l.addAll(getBean(ISessionManager.class).getClientsWithServer()); + l.addAll(getBean(ISessionManager.class).list()); l.addAll(Application.getClients()); return l; } @@ -89,33 +90,25 @@ public class ConnectionsPanel extends AdminPanel { @Override protected void onSubmit(AjaxRequestTarget target) { IClient _c = item.getModelObject(); - if (_c instanceof Client) { - Client c = (Client)_c; - getBean(IUserService.class).kickUserByStreamId(getSid(), c.getStreamid() - , c.getServer() == null ? 0 : c.getServer().getId()); - } else { - org.apache.openmeetings.db.entity.basic.Client c = (org.apache.openmeetings.db.entity.basic.Client)_c; - getBean(IUserService.class).kickUserBySessionId(getSid(), c.getUserId(), c.getSessionId()); - } + getBean(IUserManager.class).kickClient(getSid(), _c.getUid()); target.add(container, details.setVisible(false)); } }; - if (_c instanceof Client) { - Client c = (Client)_c; + if (_c instanceof StreamClient) { + StreamClient c = (StreamClient)_c; item.add(new Label("streamid")); item.add(new Label("login", c.getUsername())); item.add(new Label("since", c.getConnectedSince())); item.add(new Label("scope")); - item.add(new Label("server", c.getServer() == null ? "no cluster" : c.getServer().getAddress())); //FIXME localization confirm.setEnabled(!c.isScreenClient()); } else { - org.apache.openmeetings.db.entity.basic.Client c = (org.apache.openmeetings.db.entity.basic.Client)_c; + Client c = (Client)_c; item.add(new Label("streamid", "")); item.add(new Label("login", c.getUser().getLogin())); item.add(new Label("since", c.getConnectedSince())); item.add(new Label("scope", c.getRoomId() == null ? "html5" : "" + c.getRoomId())); - item.add(new Label("server", "")); } + item.add(new Label("server", _c.getServerId())); item.add(confirm); item.add(new AjaxEventBehavior("click") { private static final long serialVersionUID = 1L; http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java index 712dbbc..f87cf91 100644 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java +++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/rooms/RoomForm.java @@ -32,13 +32,13 @@ import java.util.List; import org.apache.openmeetings.db.dao.room.RoomDao; import org.apache.openmeetings.db.dao.server.ISessionManager; import org.apache.openmeetings.db.dao.user.GroupDao; -import org.apache.openmeetings.db.dao.user.IUserService; +import org.apache.openmeetings.db.dao.user.IUserManager; import org.apache.openmeetings.db.dao.user.UserDao; -import org.apache.openmeetings.db.entity.room.Client; import org.apache.openmeetings.db.entity.room.Room; import org.apache.openmeetings.db.entity.room.Room.RoomElement; import org.apache.openmeetings.db.entity.room.RoomGroup; import org.apache.openmeetings.db.entity.room.RoomModerator; +import org.apache.openmeetings.db.entity.room.StreamClient; import org.apache.openmeetings.db.entity.user.Address; import org.apache.openmeetings.db.entity.user.Group; import org.apache.openmeetings.db.entity.user.User; @@ -83,12 +83,12 @@ public class RoomForm extends AdminBaseForm<Room> { private final TextField<String> pin = new TextField<>("pin"); private final WebMarkupContainer moderatorContainer = new WebMarkupContainer("moderatorContainer"); private final WebMarkupContainer clientsContainer = new WebMarkupContainer("clientsContainer"); - private final ListView<Client> clients = new ListView<Client>("clients", new ArrayList<>()) { + private final ListView<StreamClient> clients = new ListView<StreamClient>("clients", new ArrayList<>()) { private static final long serialVersionUID = 1L; @Override - protected void populateItem(final ListItem<Client> item) { - Client client = item.getModelObject(); + protected void populateItem(final ListItem<StreamClient> item) { + StreamClient client = item.getModelObject(); item.add(new Label("clientId", "" + client.getId())) .add(new Label("clientLogin", "" + client.getUsername())) .add(new ConfirmableAjaxBorder("clientDelete", getString("80"), getString("833")) { @@ -96,9 +96,8 @@ public class RoomForm extends AdminBaseForm<Room> { @Override protected void onSubmit(AjaxRequestTarget target) { - Client c = item.getModelObject(); - getBean(IUserService.class).kickUserByStreamId(getSid(), c.getStreamid() - , c.getServer() == null ? 0 : c.getServer().getId()); + StreamClient c = item.getModelObject(); + getBean(IUserManager.class).kickClient(getSid(), c.getUid()); updateClients(target); } @@ -324,7 +323,7 @@ public class RoomForm extends AdminBaseForm<Room> { void updateClients(AjaxRequestTarget target) { long roomId = (getModelObject().getId() != null ? getModelObject().getId() : 0); - final List<Client> clientsInRoom = getBean(ISessionManager.class).getClientListByRoom(roomId); + final List<StreamClient> clientsInRoom = getBean(ISessionManager.class).listByRoom(roomId); clients.setDefaultModelObject(clientsInRoom); target.add(clientsContainer); } http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServerForm.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServerForm.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServerForm.java deleted file mode 100644 index c40315e..0000000 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServerForm.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * 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.web.admin.servers; - -import static org.apache.openmeetings.util.OpenmeetingsVariables.WEB_DATE_PATTERN; -import static org.apache.wicket.datetime.markup.html.basic.DateLabel.forDatePattern; - -import org.apache.openmeetings.db.dao.server.ServerDao; -import org.apache.openmeetings.db.entity.server.Server; -import org.apache.openmeetings.web.admin.AdminBaseForm; -import org.apache.openmeetings.web.app.Application; -import org.apache.openmeetings.web.app.WebSession; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.html.form.CheckBox; -import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.RequiredTextField; -import org.apache.wicket.markup.html.form.TextArea; -import org.apache.wicket.markup.html.form.TextField; -import org.apache.wicket.model.CompoundPropertyModel; -import org.apache.wicket.model.Model; -import org.apache.wicket.util.time.Duration; - -/** - * Form component to insert/update/delete {@link Server} - * - * @author swagner - * - */ -public class ServerForm extends AdminBaseForm<Server> { - private final WebMarkupContainer listContainer; - private static final long serialVersionUID = 1L; - - public ServerForm(String id, WebMarkupContainer listContainer, final Server server) { - super(id, new CompoundPropertyModel<>(server)); - setOutputMarkupId(true); - this.listContainer = listContainer; - - add(new RequiredTextField<String>("name").setLabel(Model.of(Application.getString(1500)))); - add(new CheckBox("active")); - add(new RequiredTextField<String>("address").setLabel(Model.of(Application.getString(1501)))); - add(new TextField<Integer>("port")); - add(new TextField<String>("user")); - add(new TextField<String>("pass")); - add(new TextField<String>("webapp")); - add(new TextField<String>("protocol")); - add(forDatePattern("lastPing", WEB_DATE_PATTERN)); - //add(new Label("pingRunning")); - add(forDatePattern("inserted", WEB_DATE_PATTERN)); - add(new Label("insertedby.login")); - add(forDatePattern("updated", WEB_DATE_PATTERN)); - add(new Label("updatedby.login")); - add(new TextArea<String>("comment")); - - // attach an ajax validation behavior to all form component's keydown - // event and throttle it down to once per second - add(new AjaxFormValidatingBehavior("keydown", Duration.ONE_SECOND)); - } - - @Override - protected void onSaveSubmit(AjaxRequestTarget target, Form<?> form) { - Application.getBean(ServerDao.class).update(getModelObject(), WebSession.getUserId()); - Server server = Application.getBean(ServerDao.class).get(getModelObject().getId()); - setModelObject(server); - hideNewRecord(); - target.add(this); - target.add(listContainer); - target.appendJavaScript("adminPanelInit();"); - } - - @Override - protected void onNewSubmit(AjaxRequestTarget target, Form<?> form) { - Server s = new Server(); - s.setWebapp("openmeetings"); - s.setProtocol("http"); - setModelObject(s); - target.add(this); - target.appendJavaScript("adminPanelInit();"); - } - - @Override - protected void onRefreshSubmit(AjaxRequestTarget target, Form<?> form) { - Server server = getModelObject(); - if (server.getId() != null) { - server = Application.getBean(ServerDao.class).get(server.getId()); - } else { - server = new Server(); - } - setModelObject(server); - target.add(this); - target.appendJavaScript("adminPanelInit();"); - } - - @Override - protected void onDeleteSubmit(AjaxRequestTarget target, Form<?> form) { - Application.getBean(ServerDao.class).delete(getModelObject(), WebSession.getUserId()); - this.setModelObject(new Server()); - target.add(listContainer); - target.add(this); - target.appendJavaScript("adminPanelInit();"); - } - - @Override - protected void onSaveError(AjaxRequestTarget target, Form<?> form) { - // TODO Auto-generated method stub - } - - @Override - protected void onNewError(AjaxRequestTarget target, Form<?> form) { - // TODO Auto-generated method stub - } - - @Override - protected void onRefreshError(AjaxRequestTarget target, Form<?> form) { - // TODO Auto-generated method stub - } - - @Override - protected void onDeleteError(AjaxRequestTarget target, Form<?> form) { - // TODO Auto-generated method stub - } -} http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html deleted file mode 100644 index 187b748..0000000 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.html +++ /dev/null @@ -1,103 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- - 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. - ---> -<html xmlns:wicket="http://wicket.apache.org"> -<wicket:extend> - <div class="adminPanelColumnTable"> - <span wicket:id="navigator">[dataview navigator]</span> - <table class="adminListTable"> - <thead> - <tr> - <th class="three_column_layout_column1 ui-widget-header"><span wicket:id="orderById"></span><wicket:message key="188" /></th> - <th class="three_column_layout_column2 ui-widget-header"><span wicket:id="orderByName"></span><wicket:message key="1500" /></th> - <th class="three_column_layout_column3 ui-widget-header"><span wicket:id="orderByAddress"></span><wicket:message key="1501" /></th> - </tr> - </thead> - </table> - <div class="tableWrapper" id="adminTable"> - <table class="adminListTable"> - <tbody wicket:id="listContainer"> - <tr wicket:id="serverList"> - <td class="three_column_layout_column1"><div class="three_column_layout_divcolumn1"><span wicket:id="id"></span></div></td> - <td class="three_column_layout_column2"><div class="three_column_layout_divcolumn2"><span wicket:id="name"></span></div></td> - <td class="three_column_layout_column3"><div class="three_column_layout_divcolumn3"><span wicket:id="address"></span></div></td> - </tr> - </tbody> - </table> - </div> - </div> - <div class="adminPanelColumnForm"> - <form wicket:id="form" class="adminForm"> - <div wicket:id="buttons"></div> - <div class="scrollcontent" id="adminForm"> - <fieldset class="ui-widget-content"> - <legend class="ui-widget-header"><wicket:message key="1502" /></legend> - <div class="formelement"> - <label wicket:for="name"><wicket:message key="1500" /></label><input type="text" wicket:id="name"/> - </div> - <div class="formelement"> - <label wicket:for="active"><wicket:message key="1525" /></label><input type="checkbox" class="formcheckbox" wicket:id="active" /> - </div> - <div class="formelement"> - <label wicket:for="address"><wicket:message key="1501" /></label><input type="text" wicket:id="address"/> - </div> - <div class="formelement"> - <label wicket:for="port"><wicket:message key="1519" /></label><input type="text" wicket:id="port"/> - </div> - <div class="formelement"> - <label wicket:for="user"><wicket:message key="1520" /></label><input type="text" wicket:id="user"/> - </div> - <div class="formelement"> - <label wicket:for="pass"><wicket:message key="1521" /></label><input type="text" wicket:id="pass"/> - </div> - <div class="formelement"> - <label wicket:for="webapp"><wicket:message key="1522" /></label><input type="text" wicket:id="webapp"/> - </div> - <div class="formelement"> - <label wicket:for="protocol"><wicket:message key="1523" /></label><input type="text" wicket:id="protocol"/> - </div> - <div class="formelement"> - <div class="info-text"><wicket:message key="1518" /></div> - <br/> - <label><wicket:message key="1517" /></label><span wicket:id="lastPing"/> - <!-- br/> - <label wicket:for="pingRunning"><wicket:message key="1524" /></label><span wicket:id="pingRunning"/--> - </div> - <div class="formelement"> - <label><wicket:message key="1110" /></label><span wicket:id="inserted"/> - </div> - <div class="formelement"> - <label><wicket:message key="1111" /></label><span wicket:id="insertedby.login"/> - </div> - <div class="formelement"> - <label><wicket:message key="1112" /></label><span wicket:id="updated"/> - </div> - <div class="formelement"> - <label><wicket:message key="1113" /></label><span wicket:id="updatedby.login"/> - </div> - <div class="formelement"> - <label wicket:for="comment"><wicket:message key="270" /></label><textarea wicket:id="comment"/> - </div> - </fieldset> - </div> - </form> - </div> -</wicket:extend> -</html> http://git-wip-us.apache.org/repos/asf/openmeetings/blob/ca559564/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java ---------------------------------------------------------------------- diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java b/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java deleted file mode 100644 index 1a60552..0000000 --- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/admin/servers/ServersPanel.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * 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.web.admin.servers; - -import org.apache.openmeetings.db.dao.server.ServerDao; -import org.apache.openmeetings.db.entity.server.Server; -import org.apache.openmeetings.web.admin.AdminPanel; -import org.apache.openmeetings.web.admin.SearchableDataView; -import org.apache.openmeetings.web.common.PagedEntityListPanel; -import org.apache.openmeetings.web.data.DataViewContainer; -import org.apache.openmeetings.web.data.OmOrderByBorder; -import org.apache.openmeetings.web.data.SearchableDataProvider; -import org.apache.wicket.AttributeModifier; -import org.apache.wicket.ajax.AjaxEventBehavior; -import org.apache.wicket.ajax.AjaxRequestTarget; -import org.apache.wicket.markup.html.WebMarkupContainer; -import org.apache.wicket.markup.html.basic.Label; -import org.apache.wicket.markup.repeater.Item; - -/** - * Form component with list and form to manipulate {@link Server} - * - * @author swagner - * - */ -public class ServersPanel extends AdminPanel { - private static final long serialVersionUID = 1L; - final WebMarkupContainer listContainer = new WebMarkupContainer("listContainer"); - private ServerForm form; - - public ServersPanel(String id) { - super(id); - SearchableDataView<Server> dataView = new SearchableDataView<Server>("serverList", - new SearchableDataProvider<>(ServerDao.class)) { - private static final long serialVersionUID = 1L; - - @Override - protected void populateItem(final Item<Server> item) { - final Server server = item.getModelObject(); - item.add(new Label("id")); - item.add(new Label("name")); - item.add(new Label("address")); - item.add(new AjaxEventBehavior("click") { - private static final long serialVersionUID = 1L; - - @Override - protected void onEvent(AjaxRequestTarget target) { - form.setModelObject(server); - form.hideNewRecord(); - target.add(form, listContainer); - target.appendJavaScript("adminPanelInit();"); - } - }); - item.add(AttributeModifier.replace("class", getRowClass(server.getId(), form.getModelObject().getId()))); - } - }; - - add(listContainer.add(dataView).setOutputMarkupId(true)); - PagedEntityListPanel navigator = new PagedEntityListPanel("navigator", dataView) { - private static final long serialVersionUID = 1L; - - @Override - protected void onEvent(AjaxRequestTarget target) { - target.add(listContainer); - } - }; - DataViewContainer<Server> container = new DataViewContainer<>(listContainer, dataView, navigator); - container.addLink(new OmOrderByBorder<>("orderById", "id", container)) - .addLink(new OmOrderByBorder<>("orderByName", "name", container)) - .addLink(new OmOrderByBorder<>("orderByAddress", "address", container)); - add(container.getLinks()); - add(navigator); - - form = new ServerForm("form", listContainer, new Server()); - form.showNewRecord(); - add(form); - - } -}
