You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2016/04/16 01:48:01 UTC
svn commit: r1739381 - in /manifoldcf/trunk: ./
connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/
connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/
Author: kwright
Date: Fri Apr 15 23:48:00 2016
New Revision: 1739381
URL: http://svn.apache.org/viewvc?rev=1739381&view=rev
Log:
Fix for CONNECTORS-1296: Revamp email notification connector.
Modified:
manifoldcf/trunk/CHANGES.txt
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailConnector.java
manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailSession.java
manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/ConfigurationView.html
manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/Configuration_Server.html
Modified: manifoldcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/CHANGES.txt?rev=1739381&r1=1739380&r2=1739381&view=diff
==============================================================================
--- manifoldcf/trunk/CHANGES.txt (original)
+++ manifoldcf/trunk/CHANGES.txt Fri Apr 15 23:48:00 2016
@@ -3,6 +3,10 @@ $Id$
======================= 2.4-dev =====================
+CONNECTORS-1296: Revamp email notification connector to do
+SMTP and be more configurable.
+(Markus Schuch, Karl Wright)
+
CONNECTORS-1295: JCIFS connector ignoring max file length value
sometimes.
(Konstantin Avdeev, Karl Wright)
Modified: manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailConnector.java?rev=1739381&r1=1739380&r2=1739381&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailConnector.java (original)
+++ manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailConnector.java Fri Apr 15 23:48:00 2016
@@ -48,21 +48,11 @@ public class EmailConnector extends org.
protected String portString = null;
protected String username = null;
protected String password = null;
- protected String protocol = null;
protected Properties properties = null;
// Local session handle
protected EmailSession session = null;
- private static Map<String,String> providerMap;
- static
- {
- providerMap = new HashMap<String,String>();
- providerMap.put(EmailConfig.PROTOCOL_POP3, EmailConfig.PROTOCOL_POP3_PROVIDER);
- providerMap.put(EmailConfig.PROTOCOL_POP3S, EmailConfig.PROTOCOL_POP3S_PROVIDER);
- providerMap.put(EmailConfig.PROTOCOL_IMAP, EmailConfig.PROTOCOL_IMAP_PROVIDER);
- providerMap.put(EmailConfig.PROTOCOL_IMAPS, EmailConfig.PROTOCOL_IMAPS_PROVIDER);
- }
//////////////////////////////////Start of Basic Connector Methods/////////////////////////
/**
@@ -76,7 +66,6 @@ public class EmailConnector extends org.
super.connect(configParameters);
this.server = configParameters.getParameter(EmailConfig.SERVER_PARAM);
this.portString = configParameters.getParameter(EmailConfig.PORT_PARAM);
- this.protocol = configParameters.getParameter(EmailConfig.PROTOCOL_PARAM);
this.username = configParameters.getParameter(EmailConfig.USERNAME_PARAM);
this.password = configParameters.getObfuscatedParameter(EmailConfig.PASSWORD_PARAM);
this.properties = new Properties();
@@ -101,7 +90,6 @@ public class EmailConnector extends org.
throws ManifoldCFException {
this.server = null;
this.portString = null;
- this.protocol = null;
this.username = null;
this.password = null;
this.properties = null;
@@ -164,8 +152,6 @@ public class EmailConnector extends org.
throw new ManifoldCFException("Missing server parameter");
if (properties == null)
throw new ManifoldCFException("Missing server properties");
- if (protocol == null)
- throw new ManifoldCFException("Missing protocol parameter");
// Create a session.
int port;
@@ -184,8 +170,7 @@ public class EmailConnector extends org.
port = -1;
try {
- ConnectThread connectThread = new ConnectThread(server, port, username, password,
- providerMap.get(protocol), properties);
+ ConnectThread connectThread = new ConnectThread(server, port, username, password, properties);
connectThread.start();
session = connectThread.finishUp();
} catch (InterruptedException e) {
@@ -378,7 +363,6 @@ public class EmailConnector extends org.
int i = 0;
String username = parameters.getParameter(EmailConfig.USERNAME_PARAM);
String password = parameters.getObfuscatedParameter(EmailConfig.PASSWORD_PARAM);
- String protocol = parameters.getParameter(EmailConfig.PROTOCOL_PARAM);
String server = parameters.getParameter(EmailConfig.SERVER_PARAM);
String port = parameters.getParameter(EmailConfig.PORT_PARAM);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
@@ -401,8 +385,6 @@ public class EmailConnector extends org.
password = StringUtils.EMPTY;
else
password = mapper.mapPasswordToKey(password);
- if (protocol == null)
- protocol = EmailConfig.PROTOCOL_DEFAULT_VALUE;
if (server == null)
server = StringUtils.EMPTY;
if (port == null)
@@ -410,7 +392,6 @@ public class EmailConnector extends org.
paramMap.put("USERNAME", username);
paramMap.put("PASSWORD", password);
- paramMap.put("PROTOCOL", protocol);
paramMap.put("SERVER", server);
paramMap.put("PORT", port);
paramMap.put("PROPERTIES", list);
@@ -443,10 +424,6 @@ public class EmailConnector extends org.
if (password != null)
parameters.setObfuscatedParameter(EmailConfig.PASSWORD_PARAM, variableContext.mapKeyToPassword(password));
- String protocol = variableContext.getParameter("protocol");
- if (protocol != null)
- parameters.setParameter(EmailConfig.PROTOCOL_PARAM, protocol);
-
String server = variableContext.getParameter("server");
if (server != null)
parameters.setParameter(EmailConfig.SERVER_PARAM, server);
@@ -800,20 +777,18 @@ public class EmailConnector extends org.
protected final int port;
protected final String username;
protected final String password;
- protected final String protocol;
protected final Properties properties;
// Local session handle
protected EmailSession session = null;
protected Throwable exception = null;
- public ConnectThread(String server, int port, String username, String password, String protocol, Properties properties)
+ public ConnectThread(String server, int port, String username, String password, Properties properties)
{
this.server = server;
this.port = port;
this.username = username;
this.password = password;
- this.protocol = protocol;
this.properties = properties;
setDaemon(true);
}
@@ -822,7 +797,7 @@ public class EmailConnector extends org.
{
try
{
- session = new EmailSession(server, port, username, password, protocol, properties);
+ session = new EmailSession(server, port, username, password, properties);
}
catch (Throwable e)
{
Modified: manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailSession.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailSession.java?rev=1739381&r1=1739380&r2=1739381&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailSession.java (original)
+++ manifoldcf/trunk/connectors/email/connector/src/main/java/org/apache/manifoldcf/crawler/notifications/email/EmailSession.java Fri Apr 15 23:48:00 2016
@@ -33,42 +33,59 @@ public class EmailSession
protected final int port;
protected final String username;
protected final String password;
- protected final String protocol;
protected final Properties properties;
private Session session = null;
- private Store store = null;
/** Create a session */
- public EmailSession(String server, int port, String username, String password,
- String protocol, Properties properties)
+ public EmailSession(final String server, final int port, final String username, final String password,
+ Properties properties)
throws MessagingException
{
this.server = server;
this.port = port;
this.username = username;
this.password = password;
- this.protocol = protocol;
this.properties = properties;
+
+ properties.put("mail.smtp.host", server);
+ properties.put("mail.smtp.port", new Integer(port).toString());
+
+ if (properties.get("mail.smtp.connectiontimeout") == null) {
+ properties.put("mail.smtp.connectiontimeout", new Integer(60000));
+ }
+ if (properties.get("mail.smtp.timeout") == null) {
+ properties.put("mail.smtp.timeout", new Integer(60000));
+ }
+ if (properties.get("mail.smtp.writetimeout") == null) {
+ properties.put("mail.smtp.writetimeout", new Integer(60000));
+ }
- // Now, try to connect
- Session thisSession = Session.getDefaultInstance(properties, null);
- Store thisStore = thisSession.getStore(protocol);
- thisStore.connect(server, port, username, password);
+ if (username != null && username.length() > 0) {
+ properties.put("mail.smtp.auth", "true");
+ }
+
+ if (properties.get("mail.smtp.starttls.enable") == null) {
+ properties.put("mail.smtp.starttls.enable", "true");
+ //properties.put("mail.smtp.ssl.trust", true);
+ }
+
+ // Now, try to connect
+ final Session thisSession = Session.getInstance(properties,
+ new javax.mail.Authenticator() {
+ protected PasswordAuthentication getPasswordAuthentication() {
+ return new PasswordAuthentication(username, password);
+ }
+ });
+
session = thisSession;
- store = thisStore;
}
public void checkConnection()
throws MessagingException
{
- if (store != null)
- {
- if (store.getDefaultFolder() == null) {
- throw new MessagingException("Error checking the connection: No default folder.");
- }
- }
+ // Need something here...
}
public void send(List<String> to, String from, String subject, String body)
@@ -98,11 +115,6 @@ public class EmailSession
public void close()
throws MessagingException
{
- if (store != null)
- {
- store.close();
- store = null;
- }
session = null;
}
}
\ No newline at end of file
Modified: manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/ConfigurationView.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/ConfigurationView.html?rev=1739381&r1=1739380&r2=1739381&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/ConfigurationView.html (original)
+++ manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/ConfigurationView.html Fri Apr 15 23:48:00 2016
@@ -19,15 +19,6 @@ limitations under the License.
<tr>
<td class="description">
- <nobr>$Encoder.bodyEscape($ResourceBundle.getString('EmailConnector.ProtocolColon'))</nobr>
- </td>
- <td class="value">
- <nobr>$Encoder.bodyEscape($PROTOCOL)</nobr>
- </td>
- </tr>
-
- <tr>
- <td class="description">
<nobr>$Encoder.bodyEscape($ResourceBundle.getString('EmailConnector.HostNameColon'))</nobr>
</td>
<td class="value">
Modified: manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/Configuration_Server.html
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/Configuration_Server.html?rev=1739381&r1=1739380&r2=1739381&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/Configuration_Server.html (original)
+++ manifoldcf/trunk/connectors/email/connector/src/main/resources/org/apache/manifoldcf/crawler/notifications/email/Configuration_Server.html Fri Apr 15 23:48:00 2016
@@ -21,36 +21,6 @@ limitations under the License.
<tr><td class="separator" colspan="2"><hr/></td></tr>
<tr>
<td class="description">
- <nobr>$Encoder.bodyEscape($ResourceBundle.getString('EmailConnector.ProtocolColon'))</nobr>
- </td>
- <td class="value">
- <select id="protocol" name="protocol" size="2">
- #if($PROTOCOL == 'IMAP')
- <option value="IMAP" selected="selected">IMAP</option>
- #else
- <option value="IMAP">IMAP</option>
- #end
- #if($PROTOCOL == 'IMAP-SSL')
- <option value="IMAP-SSL" selected="selected">IMAP-SSL</option>
- #else
- <option value="IMAP-SSL">IMAP-SSL</option>
- #end
- #if($PROTOCOL == 'POP3')
- <option value="POP3" selected="selected">POP3</option>
- #else
- <option value="POP3">POP3</option>
- #end
- #if($PROTOCOL == 'POP3-SSL')
- <option value="POP3-SSL" selected="selected">POP3-SSL</option>
- #else
- <option value="POP3-SSL">POP3-SSL</option>
- #end
- </select>
- </td>
- </tr>
-
- <tr>
- <td class="description">
<nobr>$Encoder.bodyEscape($ResourceBundle.getString('EmailConnector.HostNameColon'))</nobr>
</td>
<td class="value">
@@ -171,7 +141,6 @@ limitations under the License.
<input type="hidden" name="username" value="$Encoder.attributeEscape($USERNAME)"/>
<input type="hidden" name="password" value="$Encoder.attributeEscape($PASSWORD)"/>
-<input type="hidden" name="protocol" value="$Encoder.attributeEscape($PROTOCOL)"/>
<input type="hidden" name="server" value="$Encoder.attributeEscape($SERVER)"/>
<input type="hidden" name="port" value="$Encoder.attributeEscape($PORT)"/>