*SOAPLogin and Invitations are not that similar.
both of them are used to get hash, both stores user the hash is generated
for.
I feel its functionality is the same (or very similar)

*Will result in that the Object "Fieldvalues" has a primary key called
"fieldvalues_id"
OK, since we can easily change it the future

*"Language" might be a reserved word
OmLanguage? :)

On Sun, Sep 30, 2012 at 10:42 PM, [email protected] <
[email protected]> wrote:

> OpenXGReturnObject can be removed, it was part of the OpenXG integration
> to Kamailio (former OpenSER).
>
> SOAPLogin and Invitations are not that similar.
> SOAPLogin and SessionData are kind of similar. But SessionData is cleaned
> by a Scheduler every xx minutes so I don't want to mix those tables (at the
> moment).
>
> Changing table names to singular => ok
>
> This renaming action:
>
> Fieldlanguage => Language
> Fieldvalues => Label
> FieldLanguageValue => LabelValue
> => Will result in that the Object "Fieldvalues" has a primary key called
> "fieldvalues_id". Are you okay with that? We might change attribute names
> on a later iteration. But for now the attribute names will then be quite
> different from the Table name.
>
> "Language" might be a reserved word in some database vendors. Do you have
> other ideas for this table/Object ?
>
>
> Sebastian
>
> 2012/9/30 Maxim Solodovnik <[email protected]>
>
>> I agree :))
>>
>> couple of things
>>
>> I would recommend to:
>>
>> Fieldlanguagesvalues => FieldLanguageValue
>>
>> Or maybe even better:
>> Fieldlanguage => Language
>> Fieldvalues => Label
>> FieldLanguageValue => LabelValue
>>
>> I would change table name from users to user since it is common practice
>> (like mysql.user _not_ mysql.users)
>>
>> i also don't really like
>> FileExplorerItem => File (or FileItem)
>> and
>> FlvRecording => Recording (FlvRecordingLog, FlvRecordingMetaData,
>> FlvRecordingMetaDelta)
>>
>> also I'm not sure why do we need OpenXGReturnObject, never use it :(
>>
>> Additionally I feel SOAPLogin and Invitations are similar objects, do we
>> really need both?
>>
>>  On Sun, Sep 30, 2012 at 10:04 PM, [email protected] <
>> [email protected]> wrote:
>>
>>> Thanks Maxim!
>>>
>>> I think we might also discuss those issues:
>>>
>>> I would like to rename some classes:
>>> OmDAO => OmDao
>>> Users => User
>>> Adresses => Address
>>> States => State
>>> ErrorValues => ErrorValue
>>> AppointmentReminderTyps => AppointmentReminderType
>>> Organisation_Users => OrganisationUser
>>> Invitations => Invitation
>>> Fieldlanguagesvalues => Fieldlanguagesvalue
>>> Fieldvalues => Fieldvalue
>>> RoomPollAnswers => RoomPollAnswer
>>> RoomModerators => RoomModerator
>>> Rooms_Organisation => RoomOrganisation
>>> Rooms => Room
>>> RoomTypes => RoomType
>>> PrivateMessages => PrivateMessage
>>> Salutations => Salutation
>>> UserContacts => UserContact
>>>
>>> The table name should stay the same, for example:
>>> Java Object: User => Table name: users
>>> From my point of view a table is a List of users, so in that sense
>>> plural is ok.
>>>
>>> This refactoring will only affect the Java Object _names_ NO attribute
>>> name changes.
>>> Attribute names will stay the same (for now). You might claim that this
>>> is only 50% of the work, but it would otherwise need heavy refactoring all
>>> over the existing OpenLaszlo client. And we can't handle that as we would
>>> rely on search+find mechanism.
>>>
>>> So for now it will be that the "User"-Object has an attribute of Type
>>> "Address" but which attribute name is "adresses". Which is inconsistent but
>>> from my point of view a step in the right direction.
>>>
>>> As soon as we have a Wicket only interface, we can effectively
>>> refactor/rename attribute names and Eclipse will update most of the
>>> references.
>>>
>>> What do you think about it?
>>> How would this change affect the Backup Export/Import from your point of
>>> view? Would it work (theoretically) or is there already an issue with this
>>> change?
>>>
>>> Sebastian
>>>
>>> 2012/9/30 Maxim Solodovnik <[email protected]>
>>>
>>>> done.
>>>>
>>>> As you wish :) I'm not adding it myself since I believe it is always
>>>> possible to find via SVN history who was the author :)
>>>>
>>>>
>>>> On Sun, Sep 30, 2012 at 2:59 PM, [email protected] <
>>>> [email protected]> wrote:
>>>>
>>>>> ++ I hope you don't mind if I complete the header javaDoc of the
>>>>> classes with the author information including your name :)
>>>>>
>>>>> Sebastoan
>>>>>
>>>>> 2012/9/30 [email protected] <[email protected]>
>>>>>
>>>>> Hi Maxim,
>>>>>>
>>>>>> public Server getServerWithMinimumUsers() in the ServerDaoImpl:
>>>>>> I tried to understand it but I did not fully understood the
>>>>>> operations involved in that method.
>>>>>>
>>>>>> Could you please write a short sentence/notice in the javaDoc at this
>>>>>> method explaining it?
>>>>>>
>>>>>> Thanks!
>>>>>> Sebastian
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: <[email protected]>
>>>>>> Date: 2012/9/30
>>>>>> Subject: svn commit: r1391961 - in
>>>>>> /incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings:
>>>>>> axis/services/ data/basic/dao/ persistence/beans/basic/ remote/
>>>>>> web/components/admin/servers/
>>>>>> To: [email protected]
>>>>>>
>>>>>>
>>>>>> Author: sebawagner
>>>>>> Date: Sun Sep 30 07:52:45 2012
>>>>>> New Revision: 1391961
>>>>>>
>>>>>> URL: http://svn.apache.org/viewvc?rev=1391961&view=rev
>>>>>> Log:
>>>>>> OPENMEETINGS-434 complete Server/serverDaoImpl CRUD via Wicket, add
>>>>>> "comments,inserted,insertedby,updated,updatedby" fields in Server entity
>>>>>>
>>>>>> Modified:
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
>>>>>>
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/axis/services/ServerWebService.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -62,7 +62,7 @@ public class ServerWebService {
>>>>>>                 Long user_level =
>>>>>> userManagement.getUserLevelByID(users_id);
>>>>>>
>>>>>>                 if
>>>>>> (authLevelManagement.checkWebServiceLevel(user_level)) {
>>>>>> -                       return serversDao.getServerList(start,
>>>>>> max).toArray(new Server[0]);
>>>>>> +                       return serversDao.get(start, max).toArray(new
>>>>>> Server[0]);
>>>>>>                 } else {
>>>>>>                         log.warn("Insuffisient permissions");
>>>>>>                         return null;
>>>>>> @@ -81,7 +81,7 @@ public class ServerWebService {
>>>>>>                 Long user_level =
>>>>>> userManagement.getUserLevelByID(users_id);
>>>>>>
>>>>>>                 if
>>>>>> (authLevelManagement.checkWebServiceLevel(user_level)) {
>>>>>> -                       return (int)serversDao.getServerCount();
>>>>>> +                       return (int)serversDao.count();
>>>>>>                 } else {
>>>>>>                         log.warn("Insuffisient permissions");
>>>>>>                         return -1;
>>>>>> @@ -123,7 +123,7 @@ public class ServerWebService {
>>>>>>                 Long user_level =
>>>>>> userManagement.getUserLevelByID(users_id);
>>>>>>
>>>>>>                 if
>>>>>> (authLevelManagement.checkWebServiceLevel(user_level)) {
>>>>>> -                       return serversDao.deleteServer(id);
>>>>>> +                       return serversDao.delete(id);
>>>>>>                 } else {
>>>>>>                         log.warn("Insuffisient permissions");
>>>>>>                         return false;
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/data/basic/dao/ServerDaoImpl.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -18,27 +18,47 @@
>>>>>>   */
>>>>>>  package org.apache.openmeetings.data.basic.dao;
>>>>>>
>>>>>> +import java.util.Date;
>>>>>>  import java.util.List;
>>>>>>
>>>>>>  import javax.persistence.EntityManager;
>>>>>>  import javax.persistence.NoResultException;
>>>>>>  import javax.persistence.PersistenceContext;
>>>>>> +import javax.persistence.PersistenceException;
>>>>>>  import javax.persistence.TypedQuery;
>>>>>>
>>>>>>  import org.apache.openmeetings.OpenmeetingsVariables;
>>>>>> +import org.apache.openmeetings.data.OmDAO;
>>>>>> +import org.apache.openmeetings.data.user.dao.UsersDaoImpl;
>>>>>>  import org.apache.openmeetings.persistence.beans.basic.Server;
>>>>>>  import org.red5.logging.Red5LoggerFactory;
>>>>>>  import org.slf4j.Logger;
>>>>>> +import org.springframework.beans.factory.annotation.Autowired;
>>>>>>  import org.springframework.transaction.annotation.Transactional;
>>>>>>
>>>>>> +/**
>>>>>> + *
>>>>>> + * CRUD for {@link Server}
>>>>>> + *
>>>>>> + * @author solomax, swagner
>>>>>> + *
>>>>>> + */
>>>>>>  @Transactional
>>>>>> -public class ServerDaoImpl {
>>>>>> +public class ServerDaoImpl implements OmDAO<Server> {
>>>>>>         private static final Logger log = Red5LoggerFactory.getLogger(
>>>>>>                         ServerDaoImpl.class,
>>>>>> OpenmeetingsVariables.webAppRootKey);
>>>>>>
>>>>>>         @PersistenceContext
>>>>>>         private EntityManager em;
>>>>>>
>>>>>> +       @Autowired
>>>>>> +       private UsersDaoImpl usersDao;
>>>>>> +
>>>>>> +       /**
>>>>>> +        * Get a list of all available servers
>>>>>> +        *
>>>>>> +        * @return
>>>>>> +        */
>>>>>>         public List<Server> getServerList() {
>>>>>>                 log.debug("getServerList enter");
>>>>>>                 TypedQuery<Server> q =
>>>>>> em.createNamedQuery("getAllServers",
>>>>>> @@ -46,8 +66,12 @@ public class ServerDaoImpl {
>>>>>>                 return q.getResultList();
>>>>>>         }
>>>>>>
>>>>>> -
>>>>>> -       public List<Server> getServerList(int start, int max) {
>>>>>> +       /*
>>>>>> +        * (non-Javadoc)
>>>>>> +        *
>>>>>> +        * @see org.apache.openmeetings.data.OmDAO#get(int, int)
>>>>>> +        */
>>>>>> +       public List<Server> get(int start, int max) {
>>>>>>                 log.debug("getServerList enter");
>>>>>>                 TypedQuery<Server> q =
>>>>>> em.createNamedQuery("getAllServers",
>>>>>>                                 Server.class);
>>>>>> @@ -57,14 +81,24 @@ public class ServerDaoImpl {
>>>>>>                 return q.getResultList();
>>>>>>         }
>>>>>>
>>>>>> -       public long getServerCount() {
>>>>>> +       /*
>>>>>> +        * (non-Javadoc)
>>>>>> +        *
>>>>>> +        * @see org.apache.openmeetings.data.OmDAO#count()
>>>>>> +        */
>>>>>> +       public long count() {
>>>>>>                 log.debug("getServerCount enter");
>>>>>>                 TypedQuery<Long> q =
>>>>>> em.createNamedQuery("getServerCount", Long.class);
>>>>>>
>>>>>>                 return q.getSingleResult();
>>>>>>         }
>>>>>>
>>>>>> -       public Server getServer(long id) {
>>>>>> +       /*
>>>>>> +        * (non-Javadoc)
>>>>>> +        *
>>>>>> +        * @see org.apache.openmeetings.data.OmDAO#get(long)
>>>>>> +        */
>>>>>> +       public Server get(long id) {
>>>>>>                 Server result = null;
>>>>>>                 log.debug("getServer enter, id = " + id);
>>>>>>                 TypedQuery<Server> q =
>>>>>> em.createNamedQuery("getServerById", Server.class);
>>>>>> @@ -77,6 +111,12 @@ public class ServerDaoImpl {
>>>>>>                 return result;
>>>>>>         }
>>>>>>
>>>>>> +       /**
>>>>>> +        * Get server by its address
>>>>>> +        *
>>>>>> +        * @param address
>>>>>> +        * @return
>>>>>> +        */
>>>>>>         public Server getServerByAddress(String address) {
>>>>>>                 log.debug("getServer enter, address = " + address);
>>>>>>                 TypedQuery<Server> q =
>>>>>> em.createNamedQuery("getServerByAddress", Server.class);
>>>>>> @@ -85,6 +125,11 @@ public class ServerDaoImpl {
>>>>>>                 return list.size() > 0 ? list.get(0) : null;
>>>>>>         }
>>>>>>
>>>>>> +       /**
>>>>>> +        * Get the number of minimum users for a server(?)
>>>>>> +        *
>>>>>> +        * @return
>>>>>> +        */
>>>>>>         public Server getServerWithMinimumUsers() {
>>>>>>                 Server result = null;
>>>>>>                 log.debug("getServerWithMinimumUsers enter");
>>>>>> @@ -95,7 +140,7 @@ public class ServerDaoImpl {
>>>>>>                         List<Object> r = q1.getResultList();
>>>>>>                         if (!r.isEmpty()) {
>>>>>>                                 // get server id from first line
>>>>>> -                               result =
>>>>>> getServer((Long)((Object[])r.get(0))[0]);
>>>>>> +                               result =
>>>>>> get((Long)((Object[])r.get(0))[0]);
>>>>>>                         }
>>>>>>                 } else {
>>>>>>                         result = l.get(0);
>>>>>> @@ -103,8 +148,17 @@ public class ServerDaoImpl {
>>>>>>                 return result;
>>>>>>         }
>>>>>>
>>>>>> +       /**
>>>>>> +        * @deprecated user standard mechanism of
>>>>>> +        *             {@link
>>>>>> OmDAO#update(org.apache.openmeetings.persistence.beans.OmEntity, long)}
>>>>>> +        * @param id
>>>>>> +        * @param name
>>>>>> +        * @param address
>>>>>> +        * @return
>>>>>> +        */
>>>>>> +       @Deprecated
>>>>>>         public Server saveServer(long id, String name, String
>>>>>> address) {
>>>>>> -               Server s = getServer(id);
>>>>>> +               Server s = get(id);
>>>>>>                 if (s == null) {
>>>>>>                         s = new Server();
>>>>>>                 }
>>>>>> @@ -114,8 +168,15 @@ public class ServerDaoImpl {
>>>>>>                 return em.merge(s);
>>>>>>         }
>>>>>>
>>>>>> -       public boolean deleteServer(long id) {
>>>>>> -               Server s = getServer(id);
>>>>>> +       /**
>>>>>> +        * @deprecated use standard mechanism of
>>>>>> +        *             {@link
>>>>>> OmDAO#delete(org.apache.openmeetings.persistence.beans.OmEntity, long)}
>>>>>> +        * @param id
>>>>>> +        * @return
>>>>>> +        */
>>>>>> +       @Deprecated
>>>>>> +       public boolean delete(long id) {
>>>>>> +               Server s = get(id);
>>>>>>                 if (s == null) {
>>>>>>                         return false;
>>>>>>                 }
>>>>>> @@ -124,4 +185,45 @@ public class ServerDaoImpl {
>>>>>>
>>>>>>                 return true;
>>>>>>         }
>>>>>> +
>>>>>> +       /*
>>>>>> +        * (non-Javadoc)
>>>>>> +        *
>>>>>> +        * @see
>>>>>> +        *
>>>>>> org.apache.openmeetings.data.OmDAO#update(org.apache.openmeetings.persistence
>>>>>> +        * .beans.OmEntity, long)
>>>>>> +        */
>>>>>> +       public void update(Server entity, long userId) {
>>>>>> +               try {
>>>>>> +                       if (entity.getId() <= 0) {
>>>>>> +                               entity.setInserted(new Date());
>>>>>> +
>>>>>> entity.setInsertedby(usersDao.get(userId));
>>>>>> +                               entity.setDeleted(false);
>>>>>> +                               em.persist(entity);
>>>>>> +                       } else {
>>>>>> +                               entity.setUpdated(new Date());
>>>>>> +
>>>>>> entity.setUpdatedby(usersDao.get(userId));
>>>>>> +                               entity.setDeleted(false);
>>>>>> +                               em.merge(entity);
>>>>>> +                       }
>>>>>> +               } catch (PersistenceException ex) {
>>>>>> +                       log.error("[update LdapConfig]", ex);
>>>>>> +               }
>>>>>> +       }
>>>>>> +
>>>>>> +       /*
>>>>>> +        * (non-Javadoc)
>>>>>> +        *
>>>>>> +        * @see
>>>>>> +        *
>>>>>> org.apache.openmeetings.data.OmDAO#delete(org.apache.openmeetings.persistence
>>>>>> +        * .beans.OmEntity, long)
>>>>>> +        */
>>>>>> +       public void delete(Server entity, long userId) {
>>>>>> +               if (entity.getId() >= 0) {
>>>>>> +                       entity.setUpdated(new Date());
>>>>>> +                       entity.setUpdatedby(usersDao.get(userId));
>>>>>> +                       entity.setDeleted(true);
>>>>>> +                       em.merge(entity);
>>>>>> +               }
>>>>>> +       }
>>>>>>  }
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/persistence/beans/basic/Server.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -19,73 +19,97 @@
>>>>>>  package org.apache.openmeetings.persistence.beans.basic;
>>>>>>
>>>>>>  import java.io.Serializable;
>>>>>> +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 org.apache.openmeetings.persistence.beans.OmEntity;
>>>>>> +import org.apache.openmeetings.persistence.beans.user.Users;
>>>>>>  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")
>>>>>> -       , @NamedQuery(name="getServerCount", query="SELECT COUNT(s)
>>>>>> FROM Server s WHERE s.deleted = false")
>>>>>> -       , @NamedQuery(name="getServerById", query="SELECT s FROM
>>>>>> Server s WHERE s.deleted = false AND s.id = :id")
>>>>>> -       , @NamedQuery(name="getServerByAddress", query="SELECT s FROM
>>>>>> Server s WHERE s.deleted = false AND s.address = :address")
>>>>>> -       , @NamedQuery(name="getServersWithNoUsers"
>>>>>> -               , query="SELECT s FROM Server s WHERE s.deleted =
>>>>>> false AND s.id NOT IN (SELECT u.server.id FROM Users u where
>>>>>> u.server.id IS NOT NULL)")
>>>>>> -       , @NamedQuery(name="getServerWithMinimumUsers"
>>>>>> -               , query="SELECT s.id, COUNT(u) AS cnt FROM Users u
>>>>>> JOIN u.server s WHERE s.deleted = false GROUP BY s.id ORDER BY cnt")
>>>>>> -})
>>>>>> +               @NamedQuery(name = "getAllServers", query = "SELECT s
>>>>>> FROM Server s WHERE s.deleted = false"),
>>>>>> +               @NamedQuery(name = "getServerCount", query = "SELECT
>>>>>> COUNT(s) FROM Server s WHERE s.deleted = false"),
>>>>>> +               @NamedQuery(name = "getServerById", query = "SELECT s
>>>>>> FROM Server s WHERE s.deleted = false AND s.id = :id"),
>>>>>> +               @NamedQuery(name = "getServerByAddress", query =
>>>>>> "SELECT s FROM Server s WHERE s.deleted = false AND s.address = 
>>>>>> :address"),
>>>>>> +               @NamedQuery(name = "getServersWithNoUsers", query =
>>>>>> "SELECT s FROM Server s WHERE s.deleted = false AND s.id NOT IN
>>>>>> (SELECT u.server.id FROM Users u where u.server.id IS NOT NULL)"),
>>>>>> +               @NamedQuery(name = "getServerWithMinimumUsers", query
>>>>>> = "SELECT s.id, COUNT(u) AS cnt FROM Users u JOIN u.server s WHERE
>>>>>> s.deleted = false GROUP BY s.id ORDER BY cnt") })
>>>>>>  @Table(name = "server")
>>>>>>  @Root
>>>>>>  public class Server implements Serializable, OmEntity {
>>>>>> +
>>>>>>         private static final long serialVersionUID =
>>>>>> -6822732074549167727L;
>>>>>> +
>>>>>>         @Id
>>>>>>         @GeneratedValue(strategy = GenerationType.IDENTITY)
>>>>>> -       @Column(name="id")
>>>>>> -       @Element(data=true)
>>>>>> -       private Long id;
>>>>>> -
>>>>>> -       @Column(name="name")
>>>>>> -       @Element(data=true)
>>>>>> +       @Column(name = "id")
>>>>>> +       @Element(data = true)
>>>>>> +       private long id = 0;
>>>>>> +
>>>>>> +       @Column(name = "name")
>>>>>> +       @Element(data = true)
>>>>>>         private String name;
>>>>>> -
>>>>>> -       @Column(name="address")
>>>>>> -       @Element(data=true)
>>>>>> +
>>>>>> +       @Column(name = "address")
>>>>>> +       @Element(data = true)
>>>>>>         private String address;
>>>>>> -
>>>>>> -       @Column(name="deleted", nullable=false)
>>>>>> -       @Element(data=true)
>>>>>> +
>>>>>> +       @Column(name = "inserted")
>>>>>> +       public Date inserted;
>>>>>> +
>>>>>> +       @Column(name = "updated")
>>>>>> +       public Date updated;
>>>>>> +
>>>>>> +       @ManyToOne(fetch = FetchType.EAGER)
>>>>>> +       @JoinColumn(name = "insertedby_id", updatable = true,
>>>>>> insertable = true)
>>>>>> +       public Users insertedby;
>>>>>> +
>>>>>> +       @ManyToOne(fetch = FetchType.EAGER)
>>>>>> +       @JoinColumn(name = "updatedby_id", updatable = true,
>>>>>> insertable = true)
>>>>>> +       public Users updatedby;
>>>>>> +
>>>>>> +       @Lob
>>>>>> +       @Column(name = "comment_field", length = 2048)
>>>>>> +       @Element(data = true, required = false)
>>>>>> +       private String comment;
>>>>>> +
>>>>>> +       @Column(name = "deleted", nullable = false)
>>>>>> +       @Element(data = true)
>>>>>>         private boolean deleted = false;
>>>>>> -
>>>>>> +
>>>>>>         public Long getId() {
>>>>>>                 return id;
>>>>>>         }
>>>>>> -
>>>>>> +
>>>>>>         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;
>>>>>>         }
>>>>>> @@ -98,6 +122,46 @@ public class Server implements Serializa
>>>>>>                 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 Users getInsertedby() {
>>>>>> +               return insertedby;
>>>>>> +       }
>>>>>> +
>>>>>> +       public void setInsertedby(Users insertedby) {
>>>>>> +               this.insertedby = insertedby;
>>>>>> +       }
>>>>>> +
>>>>>> +       public Users getUpdatedby() {
>>>>>> +               return updatedby;
>>>>>> +       }
>>>>>> +
>>>>>> +       public void setUpdatedby(Users updatedby) {
>>>>>> +               this.updatedby = updatedby;
>>>>>> +       }
>>>>>> +
>>>>>> +       public String getComment() {
>>>>>> +               return comment;
>>>>>> +       }
>>>>>> +
>>>>>> +       public void setComment(String comment) {
>>>>>> +               this.comment = comment;
>>>>>> +       }
>>>>>> +
>>>>>>         @Override
>>>>>>         public String toString() {
>>>>>>                 return "Server [id=" + id + ", name=" + name + ",
>>>>>> address=" + address
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/ConferenceService.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -699,7 +699,7 @@ public class ConferenceService {
>>>>>>                         if (roomId > -1 && serverId > -1) {
>>>>>>                                 try {
>>>>>>                                         Rooms room =
>>>>>> roommanagement.getRoomById(roomId);
>>>>>> -
>>>>>> room.setServer(serverDao.getServer(serverId));
>>>>>> +
>>>>>> room.setServer(serverDao.get(serverId));
>>>>>>
>>>>>> roommanagement.updateRoomObject(room);
>>>>>>                                 } catch (Exception e) {
>>>>>>                                         log.error("Error while
>>>>>> setting server.");
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/UserService.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -495,7 +495,7 @@ public class UserService {
>>>>>>                         if (userId > -1 && serverId > -1) {
>>>>>>                                 try {
>>>>>>                                         Users user =
>>>>>> userManagement.getUserById(userId);
>>>>>> -
>>>>>> user.setServer(serverDao.getServer(serverId));
>>>>>> +
>>>>>> user.setServer(serverDao.get(serverId));
>>>>>>
>>>>>> userManagement.updateUser(user);
>>>>>>                                 } catch (Exception e) {
>>>>>>                                         log.error("Error while
>>>>>> setting server.");
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServerForm.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -18,24 +18,90 @@
>>>>>>   */
>>>>>>  package org.apache.openmeetings.web.components.admin.servers;
>>>>>>
>>>>>> +import org.apache.openmeetings.data.basic.dao.ServerDaoImpl;
>>>>>>  import org.apache.openmeetings.persistence.beans.basic.Server;
>>>>>> +import org.apache.openmeetings.web.app.Application;
>>>>>> +import org.apache.openmeetings.web.app.WebSession;
>>>>>>  import org.apache.openmeetings.web.components.admin.AdminBaseForm;
>>>>>> +import org.apache.wicket.ajax.AjaxRequestTarget;
>>>>>>  import org.apache.wicket.ajax.form.AjaxFormValidatingBehavior;
>>>>>> +import org.apache.wicket.datetime.markup.html.basic.DateLabel;
>>>>>> +import org.apache.wicket.markup.html.WebMarkupContainer;
>>>>>> +import org.apache.wicket.markup.html.basic.Label;
>>>>>> +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.model.CompoundPropertyModel;
>>>>>>  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, final Server server) {
>>>>>> +       public ServerForm(String id, WebMarkupContainer listContainer,
>>>>>> +                       final Server server) {
>>>>>>                 super(id, new CompoundPropertyModel<Server>(server));
>>>>>>                 setOutputMarkupId(true);
>>>>>> +               this.listContainer = listContainer;
>>>>>> +
>>>>>> +               add(new RequiredTextField<String>("name"));
>>>>>> +               add(new RequiredTextField<String>("address"));
>>>>>> +               add(DateLabel.forDatePattern("inserted", "dd.MM.yyyy
>>>>>> HH:mm:ss"));
>>>>>> +               add(new Label("insertedby.login"));
>>>>>> +               add(DateLabel.forDatePattern("updated", "dd.MM.yyyy
>>>>>> HH:mm:ss"));
>>>>>> +               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
>>>>>>
>>>>>> AjaxFormValidatingBehavior.addToAllFormComponents(this, "keydown",
>>>>>>                                 Duration.ONE_SECOND);
>>>>>>         }
>>>>>> +
>>>>>> +       @Override
>>>>>> +       protected void onSaveSubmit(AjaxRequestTarget target, Form<?>
>>>>>> form) {
>>>>>> +
>>>>>> Application.getBean(ServerDaoImpl.class).update(getModelObject(),
>>>>>> +                               WebSession.getUserId());
>>>>>> +               Server server =
>>>>>> Application.getBean(ServerDaoImpl.class).get(
>>>>>> +                               getModelObject().getId());
>>>>>> +               this.setModelObject(server);
>>>>>> +               target.add(this);
>>>>>> +               target.add(listContainer);
>>>>>> +       }
>>>>>> +
>>>>>> +       @Override
>>>>>> +       protected void onNewSubmit(AjaxRequestTarget target, Form<?>
>>>>>> form) {
>>>>>> +               this.setModelObject(new Server());
>>>>>> +               target.add(this);
>>>>>> +       }
>>>>>> +
>>>>>> +       @Override
>>>>>> +       protected void onRefreshSubmit(AjaxRequestTarget target,
>>>>>> Form<?> form) {
>>>>>> +               Server server = this.getModelObject();
>>>>>> +               if (server.getId() <= 0) {
>>>>>> +                       server =
>>>>>> Application.getBean(ServerDaoImpl.class).get(
>>>>>> +                                       server.getId());
>>>>>> +               } else {
>>>>>> +                       server = new Server();
>>>>>> +               }
>>>>>> +               this.setModelObject(server);
>>>>>> +               target.add(this);
>>>>>> +       }
>>>>>> +
>>>>>> +       @Override
>>>>>> +       protected void onDeleteSubmit(AjaxRequestTarget target,
>>>>>> Form<?> form) {
>>>>>> +
>>>>>> Application.getBean(ServerDaoImpl.class).delete(this.getModelObject(),
>>>>>> +                               WebSession.getUserId());
>>>>>> +               this.setModelObject(new Server());
>>>>>> +               target.add(listContainer);
>>>>>> +               target.add(this);
>>>>>> +       }
>>>>>> +
>>>>>>  }
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.html
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -49,6 +49,20 @@
>>>>>>                                 <td class="adminPanelColumnForm">
>>>>>>                                         <form wicket:id="form"
>>>>>> class="adminForm">
>>>>>>                                                 <div
>>>>>> wicket:id="buttons"></div>
>>>>>> +                                               <wicket:ommessage
>>>>>> key="1500" />: <input type="text" wicket:id="name"/>
>>>>>> +                                   <br/>
>>>>>> +                                   <wicket:ommessage key="1501" />:
>>>>>> <input type="text" wicket:id="address"/>
>>>>>> +                                   <br/>
>>>>>> +                                               <wicket:ommessage
>>>>>> key="1110" />: <span wicket:id="inserted"/>
>>>>>> +                                   <br/>
>>>>>> +                                   <wicket:ommessage key="1111" />:
>>>>>> <span wicket:id="insertedby.login"/>
>>>>>> +                                   <br/>
>>>>>> +                                   <wicket:ommessage key="1112" />:
>>>>>> <span wicket:id="updated"/>
>>>>>> +                                   <br/>
>>>>>> +                                   <wicket:ommessage key="1113" />:
>>>>>> <span wicket:id="updatedby.login"/>
>>>>>> +                                   <br/>
>>>>>> +                                   <wicket:ommessage key="270" />:
>>>>>> <textarea wicket:id="comment"/>
>>>>>> +                                   <br/>
>>>>>>                                         </form>
>>>>>>                                 </td>
>>>>>>                         </tr>
>>>>>>
>>>>>> Modified:
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
>>>>>> URL:
>>>>>> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java?rev=1391961&r1=1391960&r2=1391961&view=diff
>>>>>>
>>>>>> ==============================================================================
>>>>>> ---
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
>>>>>> (original)
>>>>>> +++
>>>>>> incubator/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/web/components/admin/servers/ServersPanel.java
>>>>>> Sun Sep 30 07:52:45 2012
>>>>>> @@ -18,13 +18,11 @@
>>>>>>   */
>>>>>>  package org.apache.openmeetings.web.components.admin.servers;
>>>>>>
>>>>>> -import java.util.Iterator;
>>>>>> -
>>>>>>  import org.apache.openmeetings.data.basic.dao.ServerDaoImpl;
>>>>>>  import org.apache.openmeetings.persistence.beans.basic.Server;
>>>>>> -import org.apache.openmeetings.web.app.Application;
>>>>>>  import org.apache.openmeetings.web.components.admin.AdminPanel;
>>>>>>  import
>>>>>> org.apache.openmeetings.web.components.admin.PagedEntityListPanel;
>>>>>> +import org.apache.openmeetings.web.data.OmDataProvider;
>>>>>>  import org.apache.wicket.AttributeModifier;
>>>>>>  import org.apache.wicket.ajax.AjaxEventBehavior;
>>>>>>  import org.apache.wicket.ajax.AjaxRequestTarget;
>>>>>> @@ -32,10 +30,13 @@ import org.apache.wicket.markup.html.Web
>>>>>>  import org.apache.wicket.markup.html.basic.Label;
>>>>>>  import org.apache.wicket.markup.repeater.Item;
>>>>>>  import org.apache.wicket.markup.repeater.data.DataView;
>>>>>> -import org.apache.wicket.markup.repeater.data.IDataProvider;
>>>>>> -import org.apache.wicket.model.CompoundPropertyModel;
>>>>>> -import org.apache.wicket.model.IModel;
>>>>>>
>>>>>> +/**
>>>>>> + * Form component with list and form to manipulate {@link Server}
>>>>>> + *
>>>>>> + * @author swagner
>>>>>> + *
>>>>>> + */
>>>>>>  public class ServersPanel extends AdminPanel {
>>>>>>
>>>>>>         private static final long serialVersionUID = -1L;
>>>>>> @@ -43,26 +44,8 @@ public class ServersPanel extends AdminP
>>>>>>
>>>>>>         public ServersPanel(String id) {
>>>>>>                 super(id);
>>>>>> -               DataView<Server> dataView = new
>>>>>> DataView<Server>("serverList", new IDataProvider<Server>(){
>>>>>> -                       private static final long serialVersionUID =
>>>>>> -1L;
>>>>>> -
>>>>>> -                       public void detach() {
>>>>>> -                               //empty
>>>>>> -                       }
>>>>>> -
>>>>>> -                       public Iterator<? extends Server>
>>>>>> iterator(long first, long count) {
>>>>>> -                               return
>>>>>> Application.getBean(ServerDaoImpl.class).getServerList((int)first,
>>>>>> (int)count).iterator();
>>>>>> -                       }
>>>>>> -
>>>>>> -                       public long size() {
>>>>>> -                               return
>>>>>> Application.getBean(ServerDaoImpl.class).getServerCount();
>>>>>> -                       }
>>>>>> -
>>>>>> -                       public IModel<Server> model(Server object) {
>>>>>> -                               return new
>>>>>> CompoundPropertyModel<Server>(object);
>>>>>> -                       }
>>>>>> -
>>>>>> -               }) {
>>>>>> +               DataView<Server> dataView = new
>>>>>> DataView<Server>("serverList",
>>>>>> +                               new
>>>>>> OmDataProvider<Server>(ServerDaoImpl.class)) {
>>>>>>                         private static final long serialVersionUID =
>>>>>> 8715559628755439596L;
>>>>>>
>>>>>>                         @Override
>>>>>> @@ -95,7 +78,7 @@ public class ServersPanel extends AdminP
>>>>>>                 });
>>>>>>
>>>>>>                 Server Server = new Server();
>>>>>> -               form = new ServerForm("form", Server);
>>>>>> +               form = new ServerForm("form", listContainer, Server);
>>>>>>          add(form);
>>>>>>
>>>>>>         }
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Sebastian Wagner
>>>>>> https://twitter.com/#!/dead_lock
>>>>>> http://www.webbase-design.de
>>>>>> http://www.wagner-sebastian.com
>>>>>> [email protected]
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sebastian Wagner
>>>>> https://twitter.com/#!/dead_lock
>>>>> http://www.webbase-design.de
>>>>> http://www.wagner-sebastian.com
>>>>> [email protected]
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> WBR
>>>> Maxim aka solomax
>>>>
>>>
>>>
>>>
>>> --
>>> Sebastian Wagner
>>> https://twitter.com/#!/dead_lock
>>> http://www.webbase-design.de
>>> http://www.wagner-sebastian.com
>>> [email protected]
>>>
>>
>>
>>
>> --
>> WBR
>> Maxim aka solomax
>>
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> [email protected]
>



-- 
WBR
Maxim aka solomax

Reply via email to