r1657 - in trunk/src/main: java/cc/kune/core/client/state java/cc/kune/core/server/i18n java/cc/kune/core/server/i18n/impl java/cc/kune/core/server/manager java/cc/kune/core/server/manager/impl java/cc/kune/core/server/notifier java/cc/kune/core/server/rpc java/cc/kune/core/shared/domain/dto java/cc/kune/domain java/cc/kune/wave/client java/cc/kune/wave/server/kspecific java/org java/org/waveprotocol/box java/org/waveprotocol/wave/client/wavepanel resources
Author: vjrj_ Date: 2012-01-09 16:37:06 +0100 (Mon, 09 Jan 2012) New Revision: 1657 Removed: trunk/src/main/java/org/ourproject/ trunk/src/main/java/org/waveprotocol/box/server/ trunk/src/main/java/org/waveprotocol/box/webclient/ trunk/src/main/java/org/waveprotocol/wave/client/wavepanel/impl/ Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java trunk/src/main/java/cc/kune/core/server/manager/Manager.java trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java trunk/src/main/java/cc/kune/domain/Container.java trunk/src/main/java/cc/kune/domain/Revision.java trunk/src/main/java/cc/kune/domain/User.java trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java trunk/src/main/resources/assembly.xml Log: Some Notification fixes and clean up. NEW - # 185: Implement notification levels (hourly and daily) similar to Google Wave http://kune.ourproject.org/issues/ticket/185 Modified: trunk/src/main/java/cc/kune/core/client/state/Session.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/state/Session.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/client/state/Session.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -65,7 +65,7 @@ long ANON_SESSION_DURATION = A_DAY; long ANON_SESSION_DURATION_AFTER_REG = A_DAY * 365; long SESSION_DURATION = A_DAY * 14; // two weeks login session duration - // long SESSION_DURATION = 1000; + // long SESSION_DURATION = 100; // For test String USERHASH = "k007userHash"; Modified: trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java =================================================================== --- trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/client/state/SessionExpirationManager.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -26,6 +26,9 @@ eventBus.addHandler(SessionExpiredEvent.getType(), new SessionExpiredEvent.SessionExpiredHandler() { @Override public void onSessionExpired(final SessionExpiredEvent event) { + if (session.isLogged()) { + session.signOut(); + } NotifyUser.info(i18n.t("Please sign in again")); } }); Modified: trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/i18n/I18nTranslationServiceMultiLang.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -17,4 +17,16 @@ * @return text translated in the specified language */ public String tWithNT(I18nLanguage lang, final String text, final String noteForTranslators); + + /** + * Use [%s] to reference the String parameter. + * + * Also adds [%NT noteForTranslators] at the end of text. This tag is later + * renderer in the translator panel to inform translator how to do this + * translation + * + */ + public String tWithNT(I18nLanguage lang, final String text, final String noteForTranslators, + final String... args); + } Modified: trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/i18n/impl/I18nTranslationServiceDefault.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -19,6 +19,7 @@ */ package cc.kune.core.server.i18n.impl; +import cc.kune.common.client.utils.Pair; import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.common.shared.utils.TextUtils; import cc.kune.core.server.UserSessionManager; @@ -65,6 +66,19 @@ } /** + * Use [%s] to reference the string parameter + * + */ + // @PMD:REVIEWED:ShortMethodName: by vjrj on 21/05/09 13:50 + private String t(final I18nLanguage lang, final Pair<String, String> pair, final String... args) { + String translation = tWithNT(lang, pair.getLeft(), pair.getRight()); + for (final String arg : args) { + translation = translation.replaceFirst("\\[%s\\]", arg); + } + return decodeHtml(translation); + } + + /** * If the text is not in the db, it stores the text pending for translation. * * Warning: text is escaped as html before insert in the db. Don't use html @@ -89,6 +103,12 @@ return decodeHtml(translation); } + @Override + public String tWithNT(final I18nLanguage lang, final String text, final String noteForTranslators, + final String... args) { + return t(lang, Pair.create(text, noteForTranslators), args); + } + /** * If the text is not in the db, it stores the text pending for translation. * Modified: trunk/src/main/java/cc/kune/core/server/manager/Manager.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/manager/Manager.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/manager/Manager.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -21,28 +21,25 @@ import org.apache.lucene.search.BooleanClause; - public interface Manager<T, X> { - void clear(); + T find(X id); - T find(X id); + T merge(T entity); - T merge(T entity); + T persist(T entity); - T persist(T entity); + void reIndex(); - void reIndex(); + void remove(T entity); - void remove(T entity); + SearchResult<T> search(final String query, final String[] fields, final BooleanClause.Occur[] flags, + final Integer firstResult, final Integer maxResults); - SearchResult<T> search(final String query, final String[] fields, final BooleanClause.Occur[] flags, - final Integer firstResult, final Integer maxResults); + SearchResult<T> search(final String[] queries, final String[] fields, + final BooleanClause.Occur[] flags, final Integer firstResult, final Integer maxResults); - SearchResult<T> search(final String[] queries, final String[] fields, final BooleanClause.Occur[] flags, - final Integer firstResult, final Integer maxResults); + SearchResult<T> search(final String[] queries, final String[] fields, final Integer firstResult, + final Integer maxResults); - SearchResult<T> search(final String[] queries, final String[] fields, final Integer firstResult, - final Integer maxResults); - } Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/manager/impl/DefaultManager.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -49,10 +49,6 @@ log = LogFactory.getLog(entityClass); } - public void clear() { - getEntityManager().clear(); - } - /** * use carefully!!! */ @@ -64,6 +60,10 @@ return getEntityManager().find(entityClass, primaryKey); } + public void flush() { + getEntityManager().flush(); + } + private EntityManager getEntityManager() { return provider.get(); } Modified: trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -43,7 +43,6 @@ import org.waveprotocol.wave.model.wave.ParticipantId; import org.waveprotocol.wave.model.waveref.WaveRef; -import cc.kune.common.shared.i18n.I18nTranslationService; import cc.kune.common.shared.utils.TextUtils; import cc.kune.core.client.errors.DefaultException; import cc.kune.core.client.errors.EmailAddressInUseException; @@ -52,6 +51,7 @@ import cc.kune.core.client.errors.I18nNotFoundException; import cc.kune.core.client.errors.UserRegistrationException; import cc.kune.core.client.errors.WrongCurrentPasswordException; +import cc.kune.core.server.i18n.I18nTranslationServiceMultiLang; import cc.kune.core.server.manager.GroupManager; import cc.kune.core.server.manager.I18nCountryManager; import cc.kune.core.server.manager.I18nLanguageManager; @@ -86,7 +86,7 @@ private final ChatProperties chatProperties; private final I18nCountryManager countryManager; private final GroupManager groupManager; - private final I18nTranslationService i18n; + private final I18nTranslationServiceMultiLang i18n; private final KuneWaveService kuneWaveManager; private final I18nLanguageManager languageManager; private final NotifyService notifyService; @@ -101,7 +101,7 @@ public UserManagerDefault(final Provider<EntityManager> provider, final UserFinder finder, final I18nLanguageManager languageManager, final I18nCountryManager countryManager, final XmppManager xmppManager, final ChatProperties chatProperties, - final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister, + final I18nTranslationServiceMultiLang i18n, final CustomUserRegistrationServlet waveUserRegister, final AccountStore waveAccountStore, final KuneWaveService kuneWaveManager, final ParticipantUtils participantUtils, final KuneBasicProperties properties, final GroupManager groupManager, final NotifyService notifyService) { @@ -201,13 +201,13 @@ passwdDigest.getSalt(), language, country, tz); final String defWave = properties.getWelcomewave(); + groupManager.createUserGroup(user, wantPersonalHomepage); if (defWave != null) { welcome = kuneWaveManager.createWave( ContentConstants.WELCOME_WAVE_CONTENT_TITLE.replaceAll("\\[%s\\]", properties.getDefaultSiteName()), "", defWave, null, participantUtils.of(properties.getAdminShortName()), participantUtils.of(shortName)); } - groupManager.createUserGroup(user, wantPersonalHomepage); // Is this necessary? try to remove (used when we were setting the def // content // contentManager.save(userGroup.getDefaultContent()); @@ -318,6 +318,7 @@ return null; } } + final I18nLanguage lang = user.getLanguage(); if (user.getPassword().equals(passwd)) { if (user.getLastLogin() == null) { final String userName = user.getShortName(); @@ -325,13 +326,15 @@ timer.schedule(new TimerTask() { @Override public void run() { + // FIXME: Use notifyService! xmppManager.sendMessage( userName, - i18n.t( + i18n.tWithNT( + lang, "This is the chat window. " + "Here you can communicate with other users of [%s] but also with other users with compatible accounts (like gmail accounts). " - + "Just add some buddy and start to chat.", - i18n.t(properties.getSiteCommonName()))); + + "Just add some buddy and start to chat.", "", + i18n.tWithNT(lang, properties.getSiteCommonName(), ""))); } }, 5000); } Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySender.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -9,8 +9,8 @@ public interface NotifySender { /** - * Send a message to the recipients (also translate the subject/body using the - * user language) + * Send a html message to the recipients (also translate the subject/body + * using the user language) * * @param notifyType * the notify type (email, etc) @@ -21,15 +21,17 @@ * {@link String.format} args * @param isHtml * if the body is html + * @param forceSend + * send even this user has "no notifications" selected * @param recipients * the recipients */ void send(NotifyType notifyType, FormatedString subject, FormatedString body, boolean isHtml, - User... recipients); + final boolean forceSend, User... recipients); /** - * Send a message to the recipients (also translate the subject/body using the - * user language) + * Send a text message to the recipients (also translate the subject/body + * using the user language) * * @param notifyType * the notify type (email, etc) @@ -41,6 +43,7 @@ * @param recipients * the recipients */ + @Deprecated void send(NotifyType notifyType, FormatedString subject, FormatedString body, User... recipients); } Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/notifier/NotifySenderDefault.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -27,28 +27,34 @@ private final String emailTemplate; private final I18nTranslationServiceMultiLang i18n; private final MailService mailService; + private final String subjectPrefix; + private final UsersOnline usersOnline; private final KuneWaveService waveService; private final XmppManager xmppManager; @Inject public NotifySenderDefault(final MailService mailService, final KuneWaveService waveService, final XmppManager xmppManager, final I18nTranslationServiceMultiLang i18n, - final KuneProperties kuneProperties) throws IOException { + final UsersOnline usersOnline, final KuneProperties kuneProperties) throws IOException { this.mailService = mailService; this.waveService = waveService; this.xmppManager = xmppManager; this.i18n = i18n; + this.usersOnline = usersOnline; emailTemplate = FileUtils.readFileToString(new File( kuneProperties.get(KuneProperties.SITE_EMAIL_TEMPLATE))); Preconditions.checkNotNull(emailTemplate); Preconditions.checkArgument(TextUtils.notEmpty(emailTemplate)); + subjectPrefix = new StringBuffer("[").append(kuneProperties.get(KuneProperties.SITE_NAME)).append( + "] ").toString(); } @Override public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body, - final boolean isHtml, final User... recipients) { + final boolean isHtml, final boolean forceSend, final User... recipients) { for (final User user : recipients) { final String username = user.getShortName(); + subject.setTemplate(subjectPrefix + subject.getTemplate()); if (subject.shouldBeTranslated()) { // Translate per recipient language // final String subjectTranslation = i18n.tWithNT(user.getLanguage(), @@ -68,15 +74,19 @@ } switch (notifyType) { case chat: + // FIXME seems that html is not sending correctly... check server specs xmppManager.sendMessage(username, String.format("<b>%s</b>%s", subject.getString(), body.getString())); break; case email: - if (user.getEmailNotifFreq().equals(EmailNotificationFrequency.immediately)) { - mailService.send(subject, FormatedString.build(emailTemplate.replace("%s", body.getString())), - isHtml, user.getEmail()); - } else { - // TODO: handle other types of notifications frequencies + if (forceSend || !usersOnline.isLogged(username)) { + if (user.getEmailNotifFreq().equals(EmailNotificationFrequency.immediately)) { + mailService.send(subject, + FormatedString.build(emailTemplate.replace("%s", body.getString())), isHtml, + user.getEmail()); + } else { + // TODO: handle other types of notifications frequencies + } } break; case wave: @@ -90,9 +100,10 @@ } @Override + @Deprecated public void send(final NotifyType notifyType, final FormatedString subject, final FormatedString body, final User... dests) { - send(notifyType, subject, body, false, dests); + send(notifyType, subject, body, false, false, dests); } } Modified: trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/notifier/NotifyService.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -79,12 +79,13 @@ final Collection<User> users) { for (final User to : users) { sender.send(NotifyType.email, FormatedString.build(subject), - helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message), to); + helper.groupNotification(groupSender.getShortName(), groupSender.hasLogo(), message), true, + true, to); } } public void notifyUser(final User to, final Group group, final String subject, final String message) { sender.send(NotifyType.email, FormatedString.build(subject), - helper.groupNotification(group.getShortName(), group.hasLogo(), message), to); + helper.groupNotification(group.getShortName(), group.hasLogo(), message), true, true, to); } } Modified: trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/server/rpc/SocialNetworkRPC.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -85,7 +85,8 @@ checkIsNotPersonalGroup(group); final Group groupToAdd = groupManager.findByShortName(groupToAddShortName); socialNetworkManager.addGroupToAdmins(userLogged, groupToAdd, group); - notifyService.notifyGroup(groupToAdd, group, "Accepted as admin", "You are now admin of this group"); + notifyService.notifyGroup(groupToAdd, group, "Added as administrator", + "You are now admin of this group"); return generateResponse(userLogged, group); } @@ -100,7 +101,7 @@ checkIsNotPersonalGroup(group); final Group groupToAdd = groupManager.findByShortName(groupToAddShortName); socialNetworkManager.addGroupToCollabs(userLogged, groupToAdd, group); - notifyService.notifyGroup(groupToAdd, group, "Accepted as collaborator", + notifyService.notifyGroup(groupToAdd, group, "Added as collaborator", "You are now a collaborator of this group"); return generateResponse(userLogged, group); } Modified: trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java =================================================================== --- trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/core/shared/domain/dto/EmailNotificationFrequency.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -22,8 +22,8 @@ import com.google.gwt.user.client.rpc.IsSerializable; public enum EmailNotificationFrequency implements IsSerializable { - daily, // at most daily, - hourly, // at most hourly - immediately, // almost immediately - no // I don't need email notifications + daily, // at most daily, (not used yet) + hourly, // at most hourly (not used yet) + immediately, // almost immediately (currently used) + no // I don't need email notifications (currently used) } Modified: trunk/src/main/java/cc/kune/domain/Container.java =================================================================== --- trunk/src/main/java/cc/kune/domain/Container.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/domain/Container.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -99,7 +99,7 @@ private String name; @IndexedEmbedded(depth = 1, prefix = "owner_") - @OneToOne + @OneToOne(cascade = CascadeType.ALL) private Group owner; // Parent/Child pattern: Modified: trunk/src/main/java/cc/kune/domain/Revision.java =================================================================== --- trunk/src/main/java/cc/kune/domain/Revision.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/domain/Revision.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -48,114 +48,114 @@ @Table(name = "revisions") @Indexed public class Revision { - @Id - @GeneratedValue - @DocumentId - private Long id; + // http://www.hibernate.org/112.html + @Lob + @Column(length = 2147483647) + @Field(index = Index.TOKENIZED, store = Store.NO) + @FieldBridge(impl = DataFieldBridge.class) + char[] body; - @Field(index = Index.TOKENIZED, store = Store.NO) - String title; + @ContainedIn + @ManyToOne(cascade = CascadeType.ALL) + @JoinColumn + private Content content; - // http://www.hibernate.org/112.html - @Lob - @Column(length = 2147483647) - @Field(index = Index.TOKENIZED, store = Store.NO) - @FieldBridge(impl = DataFieldBridge.class) - char[] body; + @Basic(optional = false) + private Long createdOn; - @OneToOne - private User editor; + @OneToOne + private User editor; - @Basic(optional = false) - private Long createdOn; + @Id + @GeneratedValue + @DocumentId + private Long id; - @Version - private int version; + @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) + private Revision previous; - @ContainedIn - @ManyToOne - @JoinColumn - private Content content; + @Field(index = Index.TOKENIZED, store = Store.NO) + String title; - @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL) - private Revision previous; + @Version + private int version; - public Revision() { - this(null); - } + public Revision() { + this(null); + } - public Revision(final Content content) { - this.content = content; - createdOn = System.currentTimeMillis(); - } + public Revision(final Content content) { + this.content = content; + createdOn = System.currentTimeMillis(); + } - public Long getId() { - return id; - } + public char[] getBody() { + return body; + } - public void setId(final Long id) { - this.id = id; - } + public Content getContent() { + return content; + } - public User getEditor() { - return editor; - } + public Long getCreatedOn() { + return createdOn; + } - public void setEditor(final User editor) { - this.editor = editor; - } + public User getEditor() { + return editor; + } - public Long getCreatedOn() { - return createdOn; - } + public Long getId() { + return id; + } - public void setCreatedOn(final Long modifiedOn) { - this.createdOn = modifiedOn; - } + public Revision getPrevious() { + return previous; + } - public int getVersion() { - return version; - } + public String getTitle() { + return title; + } - public void setVersion(final int version) { - this.version = version; - } + public int getVersion() { + return version; + } - public Revision getPrevious() { - return previous; - } + @Transient + public boolean isLast() { + return content.getLastRevision().equals(this); + } - public void setPrevious(final Revision previous) { - this.previous = previous; - } + public void setBody(final String body) { + this.body = body.toCharArray(); + } - public Content getContent() { - return content; - } + public void setContent(final Content content) { + this.content = content; + } - public void setContent(final Content content) { - this.content = content; - } + public void setCreatedOn(final Long modifiedOn) { + this.createdOn = modifiedOn; + } - public String getTitle() { - return title; - } + public void setEditor(final User editor) { + this.editor = editor; + } - public void setTitle(final String title) { - this.title = title; - } + public void setId(final Long id) { + this.id = id; + } - public char[] getBody() { - return body; - } + public void setPrevious(final Revision previous) { + this.previous = previous; + } - public void setBody(final String body) { - this.body = body.toCharArray(); - } + public void setTitle(final String title) { + this.title = title; + } - @Transient - public boolean isLast() { - return content.getLastRevision().equals(this); - } + public void setVersion(final int version) { + this.version = version; + } } Modified: trunk/src/main/java/cc/kune/domain/User.java =================================================================== --- trunk/src/main/java/cc/kune/domain/User.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/domain/User.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -128,7 +128,7 @@ @NotNull private TimeZone timezone; - @OneToOne(cascade = CascadeType.REMOVE) + @OneToOne(cascade = CascadeType.ALL) private Group userGroup; public User() { Modified: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java =================================================================== --- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -57,6 +57,7 @@ import org.waveprotocol.wave.model.wave.ParticipantId; import org.waveprotocol.wave.model.waveref.WaveRef; +import cc.kune.common.client.log.Log; import cc.kune.common.shared.i18n.I18nTranslationService; import com.google.gwt.dom.client.Element; @@ -270,15 +271,27 @@ wave = null; } if (three != null) { + try { three.getEditActions().stopEditing(); + } catch (final Exception e) { + Log.info("Some exception stoping editing", e); + } three = null; } if (two != null) { + try { two.getConnector().close(); + } catch (final Exception e) { + Log.info("Some exception closing connector", e); + } two = null; } if (one != null) { + try { one.getWavePanel().destroy(); + } catch (final Exception e) { + Log.info("Some exception destroying panel", e); + } one = null; } closed = true; Modified: trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg =================================================================== --- trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/wave/client/KuneStagesProvider.java.seg 2012-01-09 15:37:06 UTC (rev 1657) @@ -57,6 +57,7 @@ import org.waveprotocol.wave.model.wave.ParticipantId; import org.waveprotocol.wave.model.waveref.WaveRef; +import cc.kune.common.client.log.Log; import cc.kune.common.shared.i18n.I18nTranslationService; import com.google.gwt.dom.client.Element; @@ -270,15 +271,27 @@ wave = null; } if (three != null) { + try { three.getEditActions().stopEditing(); + } catch (final Exception e) { + Log.info("Some exception stoping editing", e); + } three = null; } if (two != null) { + try { two.getConnector().close(); + } catch (final Exception e) { + Log.info("Some exception closing connector", e); + } two = null; } if (one != null) { + try { one.getWavePanel().destroy(); + } catch (final Exception e) { + Log.info("Some exception destroying panel", e); + } one = null; } closed = true; Modified: trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java =================================================================== --- trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/java/cc/kune/wave/server/kspecific/WaveEmailNotifier.java 2012-01-09 15:37:06 UTC (rev 1657) @@ -23,7 +23,6 @@ import cc.kune.core.server.mail.FormatedString; import cc.kune.core.server.notifier.NotifySender; import cc.kune.core.server.notifier.NotifyType; -import cc.kune.core.server.notifier.UsersOnline; import cc.kune.core.server.properties.KuneBasicProperties; import cc.kune.domain.User; import cc.kune.domain.finders.UserFinder; @@ -38,8 +37,8 @@ @Inject public WaveEmailNotifier(final WaveBus waveBus, final NotifySender notifyService, - final UsersOnline usersOnline, final KuneBasicProperties basicProperties, - final ParticipantUtils partUtils, final UserFinder userFinder) { + final KuneBasicProperties basicProperties, final ParticipantUtils partUtils, + final UserFinder userFinder) { waveBus.subscribe(new Subscriber() { @Override public void waveletCommitted(final WaveletName waveletName, final HashedVersion version) { @@ -62,15 +61,13 @@ final String address = participant.getAddress(); if (partUtils.isLocal(address)) { final String userName = partUtils.getAddressName(address); - // FIXME only for testing try { final User user = userFinder.findByShortName(userName); - if (!usersOnline.isLogged(userName)) { - notifyService.send(NotifyType.email, FormatedString.build("You have a new message"), - body, true, user); - notifyService.send(NotifyType.chat, FormatedString.build("New message"), body, true, - user); - } + notifyService.send(NotifyType.email, FormatedString.build("You have a new message"), + body, true, false, user); + // notifyService.send(NotifyType.chat, + // FormatedString.build("New message"), body, true, + // user); } catch (final NoResultException e) { // Seems is not a local user } Modified: trunk/src/main/resources/assembly.xml =================================================================== --- trunk/src/main/resources/assembly.xml 2012-01-08 23:06:53 UTC (rev 1656) +++ trunk/src/main/resources/assembly.xml 2012-01-09 15:37:06 UTC (rev 1657) @@ -16,11 +16,11 @@ </dependencySet> </dependencySets> <fileSets> - <fileSet> + <!-- <fileSet> --> <!-- ${module.groupId}-${module.artifactId}-${module.version}.${module.extension} --> - <directory>target/kune-0.1.0-SNAPSHOT/ws/</directory> + <!-- <directory>target/kune-0.1.0-SNAPSHOT/ws/</directory> <outputDirectory>META-INF/resources/ws</outputDirectory> - </fileSet> + </fileSet>--> <fileSet> <directory>${project.basedir}/src/main/webapp/</directory> <outputDirectory>META-INF/resources/webapp</outputDirectory>
participants (1)
-
Vicente J. Ruiz Jurado