r1536 - in trunk: . src/main/java/cc/kune/core/server src/main/java/cc/kune/core/server/mail src/main/java/cc/kune/core/server/manager/impl src/main/java/cc/kune/core/server/properties src/main/resources
Author: vjrj_ Date: 2011-09-27 00:39:06 +0200 (Tue, 27 Sep 2011) New Revision: 1536 Added: trunk/src/main/java/cc/kune/core/server/mail/MailService.java trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java Removed: trunk/src/main/java/cc/kune/core/server/mail/MailManager.java trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java Modified: trunk/.classpath trunk/INSTALL trunk/pom.xml trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java trunk/src/main/resources/kune.properties Log: NEW - # 128: Remove /ws/ prefix in kune URL http://kune.ourproject.org/issues/ticket/128 CLOSED - # 129: Add some simple mail lib utility in serverside http://kune.ourproject.org/issues/ticket/129 Modified: trunk/.classpath =================================================================== --- trunk/.classpath 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/.classpath 2011-09-26 22:39:06 UTC (rev 1536) @@ -3,13 +3,14 @@ <classpathentry kind="src" path="src/main/java" including="**/*.java"/> <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/> <classpathentry kind="output" path="target/kune-0.1.0-SNAPSHOT/WEB-INF/classes"/> + <classpathentry kind="var" path="M2_REPO/javax/activation/activation/1.1/activation-1.1.jar" sourcepath="M2_REPO/javax/activation/activation/1.1/activation-1.1-sources.jar"/> <classpathentry kind="var" path="M2_REPO/javax/inject/javax.inject/1/javax.inject-1.jar" sourcepath="M2_REPO/javax/inject/javax.inject/1/javax.inject-1-sources.jar"/> <classpathentry kind="var" path="M2_REPO/javax/transaction/jta/1.1/jta-1.1.jar" sourcepath="M2_REPO/javax/transaction/jta/1.1/jta-1.1-sources.jar"/> + <classpathentry kind="var" path="M2_REPO/javax/mail/mail/1.4.4/mail-1.4.4.jar" sourcepath="M2_REPO/javax/mail/mail/1.4.4/mail-1.4.4-sources.jar"/> <classpathentry kind="var" path="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0.jar" sourcepath="M2_REPO/javax/persistence/persistence-api/1.0/persistence-api-1.0-sources.jar"/> <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar" sourcepath="M2_REPO/javax/servlet/servlet-api/2.5/servlet-api-2.5-sources.jar"/> <classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6.jar" sourcepath="M2_REPO/antlr/antlr/2.7.6/antlr-2.7.6-sources.jar"/> <classpathentry kind="var" path="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0.jar" sourcepath="M2_REPO/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar"/> - <classpathentry kind="var" path="M2_REPO/com/google/appengine/appengine-api-1.0-sdk/1.3.1/appengine-api-1.0-sdk-1.3.1.jar"/> <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/> <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box/0.3.2/box-0.3.2.jar"/> <classpathentry kind="var" path="M2_REPO/org/waveprotocol/box-src/0.3.2/box-src-0.3.2.jar"/> @@ -34,7 +35,6 @@ <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/> <classpathentry kind="var" path="M2_REPO/org/waveprotocol/communication-src/0.3.2/communication-src-0.3.2.jar"/> <classpathentry kind="var" path="M2_REPO/org/waveprotocol/concurrencycontrol-src/0.3.2/concurrencycontrol-src-0.3.2.jar"/> - <classpathentry kind="var" path="M2_REPO/net/sourceforge/htmlunit/crawl_htmlunit/r5662-gae/crawl_htmlunit-r5662-gae.jar"/> <classpathentry kind="var" path="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5.jar" sourcepath="M2_REPO/net/sourceforge/cssparser/cssparser/0.9.5/cssparser-0.9.5-sources.jar"/> <classpathentry kind="var" path="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar" sourcepath="M2_REPO/dom4j/dom4j/1.6.1/dom4j-1.6.1-sources.jar"/> <classpathentry kind="var" path="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0.jar" sourcepath="M2_REPO/net/sf/dozer/dozer/4.0/dozer-4.0-sources.jar"/> @@ -59,7 +59,6 @@ <classpathentry kind="var" path="M2_REPO/com/allen_sauer/gwt/voices/gwt-voices/gwt-voices/2.0.0/gwt-voices-2.0.0.jar"/> <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-all/0.5/gwtp-all-0.5-sources.jar"/> <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-clients-common/0.5/gwtp-clients-common-0.5-sources.jar"/> - <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-crawler/0.5/gwtp-crawler-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-crawler/0.5/gwtp-crawler-0.5-sources.jar"/> <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-dispatch-client/0.5/gwtp-dispatch-client-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-dispatch-client/0.5/gwtp-dispatch-client-0.5-sources.jar"/> <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-dispatch-server/0.5/gwtp-dispatch-server-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-dispatch-server/0.5/gwtp-dispatch-server-0.5-sources.jar"/> <classpathentry kind="var" path="M2_REPO/com/gwtplatform/gwtp-dispatch-shared/0.5/gwtp-dispatch-shared-0.5.jar" sourcepath="M2_REPO/com/gwtplatform/gwtp-dispatch-shared/0.5/gwtp-dispatch-shared-0.5-sources.jar"/> Modified: trunk/INSTALL =================================================================== --- trunk/INSTALL 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/INSTALL 2011-09-26 22:39:06 UTC (rev 1536) @@ -289,3 +289,16 @@ Allow from all </Location> </VirtualHost> + +==Appendix C: Configure your SMTP mail server== + +You should configure a SMTP server for use by Kune. See kune.site.smtp.* in kune.properties and check that your email system works propertly. For instance test something like: + + echo "Bests," | mailx -s "Testing mail in kune instalation" PUT_HERE@YOUR_EMAIL # or something similar + +http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#Protocol... +http://java.sun.com/developer/onlineTraining/JavaMail/contents.html#JavaMail... + +And: +http://javamail.kenai.com/nonav/javadocs/com/sun/mail/smtp/package-summary.h... +for more specific configuration parameters that maybe you need with your smtp server. \ No newline at end of file Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/pom.xml 2011-09-26 22:39:06 UTC (rev 1536) @@ -235,6 +235,14 @@ <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </exclusion> + <exclusion> + <groupId>com.gwtplatform</groupId> + <artifactId>gwtp-crawler-service</artifactId> + </exclusion> + <exclusion> + <groupId>com.gwtplatform</groupId> + <artifactId>gwtp-crawler</artifactId> + </exclusion> </exclusions> </dependency> <dependency> @@ -638,6 +646,12 @@ <version>0.6.3-compat</version> </dependency> <!-- end gwtupload --> + <!-- others --> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + <version>1.4.4</version> + </dependency> </dependencies> <!-- <dependency> --> @@ -958,7 +972,8 @@ </modules> <copyWebapp>true</copyWebapp> <compileReport>false</compileReport> - <localWorkers>1</localWorkers><!-- Using all workers can temporarily hang the mouse and isn't much faster --> + <localWorkers>1</localWorkers><!-- Using all workers can temporarily + hang the mouse and isn't much faster --> <extraJvmArgs>-Xmx1024m</extraJvmArgs> </configuration> <executions> Modified: trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/src/main/java/cc/kune/core/server/PlatformServerModule.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -49,6 +49,8 @@ import cc.kune.core.server.content.CreationServiceDefault; import cc.kune.core.server.content.XMLActionReader; import cc.kune.core.server.i18n.I18nTranslationServiceDefault; +import cc.kune.core.server.mail.MailService; +import cc.kune.core.server.mail.MailServiceDefault; import cc.kune.core.server.manager.ExtMediaDescripManager; import cc.kune.core.server.manager.FileManager; import cc.kune.core.server.manager.GroupManager; @@ -158,6 +160,7 @@ bind(StateService.class).to(StateServiceDefault.class); bind(I18nTranslationService.class).to(I18nTranslationServiceDefault.class); bind(KuneWaveService.class).to(KuneWaveServiceDefault.class); + bind(MailService.class).to(MailServiceDefault.class); bind(XMLActionReader.class); } Deleted: trunk/src/main/java/cc/kune/core/server/mail/MailManager.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/mail/MailManager.java 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/src/main/java/cc/kune/core/server/mail/MailManager.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -1,35 +0,0 @@ -package cc.kune.core.server.mail; - -import cc.kune.core.server.mail.MailManagerDefault.FormatedString; - -public interface MailManager { - - /** - * @param subject - * the email subject - * @param body - * the body of the email in html format - * @param from - * the sender - * @param to - * the recipients - * @return true if sender (also we can change this interface if it's more - * useful to return other thing) - */ - boolean sendHtml(FormatedString subject, FormatedString body, String from, String... to); - - /** - * @param subject - * the email subject - * @param body - * the body of the email in text format - * @param from - * the sender - * @param to - * the recipient - * @return true if sender (also we can change this interface if it's more - * useful to return other thing) - */ - boolean sendPlain(FormatedString subject, FormatedString body, String from, String... to); - -} Deleted: trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -1,34 +0,0 @@ -package cc.kune.core.server.mail; - -public class MailManagerDefault implements MailManager { - - public static class FormatedString { - - private final String string; - - public FormatedString(final String template, final Object... args) { - string = String.format(template, args); - } - - public String getString() { - return string; - } - } - - public MailManagerDefault(final String mailServer, final String otherConfigurableMailServerParams) { - } - - @Override - public boolean sendHtml(final FormatedString subject, final FormatedString body, final String from, - final String... to) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean sendPlain(final FormatedString subject, final FormatedString body, final String from, - final String... to) { - // TODO Auto-generated method stub - return false; - } -} Copied: trunk/src/main/java/cc/kune/core/server/mail/MailService.java (from rev 1534, trunk/src/main/java/cc/kune/core/server/mail/MailManager.java) =================================================================== --- trunk/src/main/java/cc/kune/core/server/mail/MailService.java (rev 0) +++ trunk/src/main/java/cc/kune/core/server/mail/MailService.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -0,0 +1,60 @@ +package cc.kune.core.server.mail; + +import cc.kune.core.server.mail.MailServiceDefault.FormatedString; + +public interface MailService { + + /** + * Sends html email with default site "from" + * + * @param subject + * the email subject + * @param body + * the body of the email in html format + * @param to + * the recipient + */ + void sendHtml(FormatedString subject, FormatedString body, String to); + + /** + * Sends html email + * + * @param subject + * the email subject + * @param body + * the body of the email in html format + * @param from + * the sender + * @param tos + * the recipients + */ + void sendHtml(FormatedString subject, FormatedString body, String from, String... tos); + + /** + * + * Sends email with default site "from" + * + * @param subject + * the email subject + * @param body + * the body of the email in text format + * @param to + * the recipient + */ + void sendPlain(FormatedString subject, FormatedString body, String to); + + /** + * Sends plain email + * + * @param subject + * the email subject + * @param body + * the body of the email in text format + * @param from + * the sender + * @param tos + * the recipients + */ + void sendPlain(FormatedString subject, FormatedString body, String from, String... tos); + +} Copied: trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java (from rev 1534, trunk/src/main/java/cc/kune/core/server/mail/MailManagerDefault.java) =================================================================== --- trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java (rev 0) +++ trunk/src/main/java/cc/kune/core/server/mail/MailServiceDefault.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -0,0 +1,106 @@ +package cc.kune.core.server.mail; + +import java.util.Properties; + +import javax.mail.Message; +import javax.mail.MessagingException; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.AddressException; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import cc.kune.core.client.errors.DefaultException; +import cc.kune.core.server.properties.KuneProperties; + +import com.google.inject.Inject; +import com.google.inject.Singleton; + +@Singleton +public class MailServiceDefault implements MailService { + + public static class FormatedString { + + private final String string; + + public FormatedString(final String template, final Object... args) { + string = String.format(template, args); + } + + public String getString() { + return string; + } + } + + Log log = LogFactory.getLog(MailServiceDefault.class); + private final Properties props; + private final String smtpDefaultFrom; + private final boolean smtpSkip; + + @Inject + public MailServiceDefault(final KuneProperties kuneProperties) { + final String smtpServer = kuneProperties.get(KuneProperties.SITE_SMTP_HOST); + smtpDefaultFrom = kuneProperties.get(KuneProperties.SITE_SMTP_DEFAULT_FROM); + smtpSkip = kuneProperties.getBoolean(KuneProperties.SITE_SMTP_SKIP); + props = System.getProperties(); + props.put("mail.smtp.host", smtpServer); + } + + private void send(final FormatedString subject, final FormatedString body, final boolean isHtml, + final String from, final String... tos) { + if (smtpSkip) { + return; + } + + // Get session + final Session session = Session.getDefaultInstance(props, null); + + // Define message + final MimeMessage message = new MimeMessage(session); + try { + message.setFrom(new InternetAddress(from)); + for (final String to : tos) { + message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); + } + final String formatedSubject = subject.getString(); + message.setSubject(formatedSubject); + final String formatedBody = body.getString(); + if (isHtml) { + message.setContent(formatedBody, "text/html"); + } else { + message.setText(formatedBody); + } + // Send message + Transport.send(message); + } catch (final AddressException e) { + } catch (final MessagingException e) { + log.error("Error sending the email", e); + throw new DefaultException("Error sending an email"); + } + } + + @Override + public void sendHtml(final FormatedString subject, final FormatedString body, final String to) { + send(subject, body, true, smtpDefaultFrom, to); + } + + @Override + public void sendHtml(final FormatedString subject, final FormatedString body, final String from, + final String... tos) { + send(subject, body, true, from, tos); + } + + @Override + public void sendPlain(final FormatedString subject, final FormatedString body, final String to) { + send(subject, body, false, smtpDefaultFrom, to); + } + + @Override + public void sendPlain(final FormatedString subject, final FormatedString body, final String from, + final String... tos) { + send(subject, body, false, from, tos); + } +} 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 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/src/main/java/cc/kune/core/server/manager/impl/UserManagerDefault.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -44,6 +44,8 @@ import cc.kune.core.client.errors.GroupShortNameInUseException; import cc.kune.core.client.errors.I18nNotFoundException; import cc.kune.core.client.errors.UserRegistrationException; +import cc.kune.core.server.mail.MailService; +import cc.kune.core.server.mail.MailServiceDefault.FormatedString; import cc.kune.core.server.manager.GroupManager; import cc.kune.core.server.manager.I18nCountryManager; import cc.kune.core.server.manager.I18nLanguageManager; @@ -80,6 +82,7 @@ private final I18nTranslationService i18n; private final KuneWaveService kuneWaveManager; private final I18nLanguageManager languageManager; + private final MailService mailService; private final ParticipantUtils participantUtils; private final KuneBasicProperties properties; private final UserFinder userFinder; @@ -94,7 +97,7 @@ final I18nTranslationService i18n, final CustomUserRegistrationServlet waveUserRegister, final AccountStore waveAccountStore, final KuneWaveService kuneWaveManager, final ParticipantUtils participantUtils, final KuneBasicProperties properties, - final GroupManager groupManager) { + final GroupManager groupManager, final MailService mailService) { super(provider, User.class); this.userFinder = finder; this.languageManager = languageManager; @@ -108,6 +111,7 @@ this.participantUtils = participantUtils; this.properties = properties; this.groupManager = groupManager; + this.mailService = mailService; } private void checkIfEmailAreInUse(final String email) { @@ -174,6 +178,7 @@ // Is this necessary? try to remove (used when we were setting the def // content // contentManager.save(userGroup.getDefaultContent()); + mailService.sendPlain(new FormatedString("Welcome", ""), new FormatedString("welcome"), email); return user; } catch (final RuntimeException e) { try { Modified: trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java =================================================================== --- trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/src/main/java/cc/kune/core/server/properties/KuneProperties.java 2011-09-26 22:39:06 UTC (rev 1536) @@ -49,6 +49,9 @@ String SITE_LOGO_URL = "kune.sitelogourl"; String SITE_NAME = "kune.default.site.name"; String SITE_SHORTNAME = "kune.default.site.shortName"; + String SITE_SMTP_DEFAULT_FROM = "kune.site.smtp.defaultfrom"; + String SITE_SMTP_HOST = "kune.site.smtp.host"; + String SITE_SMTP_SKIP = "kune.site.smtp.skip"; String SITE_URL = "kune.siteurl"; String SITE_USER_AVAILABLE_TOOLS = "kune.tools.userSiteAvailableTools"; String SITE_USER_REGIST_ENABLED_TOOLS = "kune.tools.userRegisEnabledTools"; Modified: trunk/src/main/resources/kune.properties =================================================================== --- trunk/src/main/resources/kune.properties 2011-09-26 20:24:14 UTC (rev 1535) +++ trunk/src/main/resources/kune.properties 2011-09-26 22:39:06 UTC (rev 1536) @@ -12,6 +12,12 @@ kune.default.site.shortName = site kune.site.domain = localhost +# Email +kune.site.smtp.host = localhost +kune.site.smtp.defaultfrom = noreply@localhost +# If we should avoid the use of smtp (use only for avoid emails during development) +kune.site.smtp.skip = true + ### licenses kune.default.license = by-sa-v3.0
participants (1)
-
Vicente J. Ruiz Jurado