You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/01/26 10:57:17 UTC
svn commit: r1726754 - in /openmeetings/application:
branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/
branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/
branches/3.1.x/openmeetings-w...
Author: solomax
Date: Tue Jan 26 09:57:16 2016
New Revision: 1726754
URL: http://svn.apache.org/viewvc?rev=1726754&view=rev
Log:
[OPENMEETINGS-1316] iCal attachment are tested, code clean-up
Modified:
openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
Modified: openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java?rev=1726754&r1=1726753&r2=1726754&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java Tue Jan 26 09:57:16 2016
@@ -23,7 +23,7 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
import java.util.Date;
-import java.util.HashMap;
+import java.util.Map;
import java.util.TimeZone;
import java.util.UUID;
import java.util.Vector;
@@ -125,22 +125,20 @@ public class InvitationManager implement
boolean isOwner = owner.getId().equals(i.getInvitee().getId());
IcalHandler handler = new IcalHandler(MessageType.Cancel == type ? IcalHandler.ICAL_METHOD_CANCEL : IcalHandler.ICAL_METHOD_REQUEST);
- HashMap<String, String> attendeeList = handler.getAttendeeData(email, username, isOwner);
+ Map<String, String> attendeeList = handler.getAttendeeData(email, username, isOwner);
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+ Vector<Map<String, String>> atts = new Vector<Map<String, String>>();
atts.add(attendeeList);
// Defining Organizer
- HashMap<String, String> organizerAttendee = handler.getAttendeeData(email, username, isOwner);
+ Map<String, String> organizerAttendee = handler.getAttendeeData(email, username, isOwner);
organizerAttendee = handler.getAttendeeData(replyToEmail, owner.getLogin(), isOwner);
Appointment a = i.getAppointment();
// Create ICal Message
- //FIXME should be checked to generate valid time
- String meetingId = handler.addNewMeeting(a.getStart(), a.getEnd(),
- a.getTitle(), atts, invitation_link,
- organizerAttendee, a.getIcalId(), timezoneUtil.getTimeZone(owner));
+ String meetingId = handler.addNewMeeting(a.getStart(), a.getEnd(), a.getTitle(), atts, invitation_link,
+ organizerAttendee, a.getIcalId(), timezoneUtil.getTimeZone(owner).getID());
// Writing back meetingUid
if (Strings.isEmpty(a.getIcalId())) {
Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java?rev=1726754&r1=1726753&r2=1726754&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java Tue Jan 26 09:57:16 2016
@@ -25,9 +25,11 @@ import java.io.FileOutputStream;
import java.net.URI;
import java.util.Date;
import java.util.HashMap;
+import java.util.Map;
import java.util.Vector;
import net.fortuna.ical4j.data.CalendarOutputter;
+import net.fortuna.ical4j.model.Calendar;
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.TimeZone;
import net.fortuna.ical4j.model.TimeZoneRegistry;
@@ -58,13 +60,12 @@ import org.slf4j.Logger;
*/
public class IcalHandler {
private static final Logger log = Red5LoggerFactory.getLogger(IcalHandler.class, webAppRootKey);
+ static {
+ System.setProperty("net.fortuna.ical4j.timezone.update.enabled", "false");
+ }
/** ICal instance */
- private final net.fortuna.ical4j.model.Calendar icsCalendar;
-
- /** TimeZone */
- // private TimeZone timeZone;
- // private TimeZoneRegistry timeRegistry;
+ private final Calendar icsCalendar;
/** Creation of a new Event */
public final static Method ICAL_METHOD_REQUEST = Method.REQUEST;
@@ -72,7 +73,7 @@ public class IcalHandler {
public final static Method ICAL_METHOD_REFRESH = Method.REFRESH;
/**
- * Constructor with DefaultTimeZone
+ * Constructor
*
* @param method
* (@see IcalHandler Constants)
@@ -81,14 +82,10 @@ public class IcalHandler {
public IcalHandler(Method method) {
log.debug("Icalhandler method type : " + method);
- System.setProperty("net.fortuna.ical4j.timezone.update.enabled", "false");
-
- icsCalendar = new net.fortuna.ical4j.model.Calendar();
-
+ icsCalendar = new Calendar();
icsCalendar.getProperties().add(new ProdId("-//Events Calendar//iCal4j 1.0//EN"));
icsCalendar.getProperties().add(Version.VERSION_2_0);
icsCalendar.getProperties().add(CalScale.GREGORIAN);
-
icsCalendar.getProperties().add(method);
}
@@ -101,24 +98,25 @@ public class IcalHandler {
* @param name
* meeting name
* @param attendees
- * List of attendees (use getAttendeeData to retrieve valid
- * records)
+ * List of attendees (use getAttendeeData to retrieve valid records)
* @param description
* containing the meeting description
+ * @param organizer
+ * organizer
* @param uid
* (maybe null)
+ * @param javaTzId ID of owner's java time zone
* @return UID of Meeting
*/
// ---------------------------------------------------------------------------------------
- public String addNewMeeting(Date startDate,
- Date endDate, String name,
- Vector<HashMap<String, String>> attendees, String description,
- HashMap<String, String> organizer, String uid, java.util.TimeZone normalTimeZone)
- throws Exception {
+ public String addNewMeeting(Date startDate, Date endDate, String name,
+ Vector<Map<String, String>> attendees, String description,
+ Map<String, String> organizer, String uid, String javaTzId) throws Exception
+ {
TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
- TimeZone timeZone = registry.getTimeZone(normalTimeZone.getID());
+ TimeZone timeZone = registry.getTimeZone(javaTzId);
DateTime start = new DateTime(startDate);
start.setTimeZone(timeZone);
@@ -144,19 +142,11 @@ public class IcalHandler {
meeting.getProperties().add(ui);
- for (int i = 0; i < attendees.size(); i++) {
- HashMap<String, String> oneAtt = attendees.get(i);
-
- Attendee uno = new Attendee(URI.create(oneAtt.get("uri")));
-
- String chair = oneAtt.get("chair");
-
- if (chair.equals("0"))
- uno.getParameters().add(Role.REQ_PARTICIPANT);
- else
- uno.getParameters().add(Role.CHAIR);
-
- uno.getParameters().add(new Cn(oneAtt.get("cn")));
+ for (Map<String, String> att : attendees) {
+ Attendee uno = new Attendee(URI.create(att.get("uri")));
+ String chair = att.get("chair");
+ uno.getParameters().add("0".equals(chair) ? Role.REQ_PARTICIPANT : Role.CHAIR);
+ uno.getParameters().add(new Cn(att.get("cn")));
meeting.getProperties().add(uno);
}
@@ -169,36 +159,25 @@ public class IcalHandler {
icsCalendar.getComponents().add(meeting);
return ui.getValue();
-
}
- // ---------------------------------------------------------------------------------------
-
/**
* Use this function to build a valid record for the AttendeeList for
* addMeetings Generate a Attendee
*/
- // ------------------------------------------------------------------------------------------
- public HashMap<String, String> getAttendeeData(String emailAdress,
- String displayName, Boolean chair) {
-
- HashMap<String, String> oneRecord = new HashMap<String, String>();
+ public Map<String, String> getAttendeeData(String emailAdress, String displayName, boolean chair) {
+ Map<String, String> oneRecord = new HashMap<String, String>();
oneRecord.put("uri", "mailto:" + emailAdress);
oneRecord.put("cn", displayName);
oneRecord.put("chair", chair ? "1" : "0");
return oneRecord;
-
}
- // ------------------------------------------------------------------------------------------
-
/**
* Write iCal to File
*/
- // ------------------------------------------------------------------------------------------
public void writeDataToFile(String filerPath) throws Exception {
-
if (!filerPath.endsWith(".ics")) {
filerPath = filerPath + ".ics";
}
@@ -209,30 +188,20 @@ public class IcalHandler {
}
}
- // ------------------------------------------------------------------------------------------
-
/**
* Get IcalBody as ByteArray
*/
- // ------------------------------------------------------------------------------------------
public byte[] getIcalAsByteArray() throws Exception {
-
ByteArrayOutputStream bout = new ByteArrayOutputStream();
CalendarOutputter outputter = new CalendarOutputter();
outputter.output(icsCalendar, bout);
return bout.toByteArray();
-
}
- // ------------------------------------------------------------------------------------------
-
/**
* Retrieving Data as String
*/
- // ------------------------------------------------------------------------------------------
public String getICalDataAsString() {
return icsCalendar.toString();
}
- // ------------------------------------------------------------------------------------------
-
}
Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java?rev=1726754&r1=1726753&r2=1726754&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java Tue Jan 26 09:57:16 2016
@@ -22,13 +22,12 @@ import static org.apache.openmeetings.ut
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.net.SocketException;
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
-import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
import java.util.Vector;
@@ -43,12 +42,22 @@ import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.mail.ByteArrayDataSource;
+import org.apache.openmeetings.util.mail.IcalHandler;
+import org.apache.openmeetings.util.mail.SmtpAuthenticator;
+import org.apache.wicket.util.string.Strings;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
import net.fortuna.ical4j.data.CalendarOutputter;
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.TimeZone;
import net.fortuna.ical4j.model.TimeZoneRegistry;
import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
-import net.fortuna.ical4j.model.ValidationException;
import net.fortuna.ical4j.model.component.VEvent;
import net.fortuna.ical4j.model.component.VTimeZone;
import net.fortuna.ical4j.model.parameter.Cn;
@@ -62,16 +71,6 @@ import net.fortuna.ical4j.model.property
import net.fortuna.ical4j.model.property.Version;
import net.fortuna.ical4j.util.UidGenerator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.apache.openmeetings.util.mail.ByteArrayDataSource;
-import org.apache.openmeetings.util.mail.IcalHandler;
-import org.apache.openmeetings.util.mail.SmtpAuthenticator;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
public class TestSendIcalMessage extends AbstractJUnitDefaults {
private static final Logger log = Red5LoggerFactory.getLogger(TestSendIcalMessage.class, webAppRootKey);
@@ -87,8 +86,7 @@ public class TestSendIcalMessage extends
public void simpleInvitionIcalLink() {
// Create a TimeZone
- TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance()
- .createRegistry();
+ TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
TimeZone timezone = registry.getTimeZone("America/Mexico_City");
VTimeZone tz = timezone.getVTimeZone();
@@ -160,11 +158,8 @@ public class TestSendIcalMessage extends
icsCalendar.getProperties().add(Method.REQUEST);
- System.out.println(icsCalendar);
+ log.debug(icsCalendar.toString());
-
-
-
ByteArrayOutputStream bout = new ByteArrayOutputStream();
CalendarOutputter outputter = new CalendarOutputter();
try {
@@ -172,10 +167,6 @@ public class TestSendIcalMessage extends
iCalMimeBody = bout.toByteArray();
sendIcalMessage();
- } catch (IOException e) {
- log.error("Error", e);
- } catch (ValidationException e) {
- log.error("Error", e);
} catch (Exception e) {
log.error("Error", e);
}
@@ -185,33 +176,26 @@ public class TestSendIcalMessage extends
@Test
public void sendInvitionIcalLink() {
try {
-
String email = "hans@webbase-design.de";
String username = "shans";
boolean invitor = false;
Calendar start = Calendar.getInstance();
-
Calendar end = Calendar.getInstance();
-
- IcalHandler handler = new IcalHandler(
- IcalHandler.ICAL_METHOD_REQUEST);
+ IcalHandler handler = new IcalHandler(IcalHandler.ICAL_METHOD_REQUEST);
// Transforming Meeting Members
- HashMap<String, String> attendeeList = handler.getAttendeeData(
- email, username, invitor);
+ Map<String, String> attendeeList = handler.getAttendeeData(email, username, invitor);
+ Map<String, String> organizerAttendee = handler.getAttendeeData(recipients, "seba-test", true);
- HashMap<String, String> organizerAttendee = handler
- .getAttendeeData(recipients, "seba-test", true);
-
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+ Vector<Map<String, String>> atts = new Vector<Map<String, String>>();
atts.add(attendeeList);
// Create ICal Message
String meetingId = handler.addNewMeeting(start.getTime(), end.getTime(), "test event",
atts, "localhost:5080/link_openmeetings",
- organizerAttendee, "", TimeZone.getDefault());
+ organizerAttendee, "", TimeZone.getDefault().getID());
log.debug("meetingId " + meetingId);
@@ -227,7 +211,6 @@ public class TestSendIcalMessage extends
}
private void sendIcalMessage() throws Exception {
-
log.debug("sendIcalMessage");
// Evaluating Configuration Data
@@ -249,12 +232,10 @@ public class TestSendIcalMessage extends
// Check for Authentification
Session session = null;
- if (emailUsername != null && emailUsername.length() > 0
- && emailUserpass != null && emailUserpass.length() > 0) {
+ if (!Strings.isEmpty(emailUsername) && !Strings.isEmpty(emailUserpass)) {
// use SMTP Authentication
props.put("mail.smtp.auth", "true");
- session = Session.getDefaultInstance(props, new SmtpAuthenticator(
- emailUsername, emailUserpass));
+ session = Session.getDefaultInstance(props, new SmtpAuthenticator(emailUsername, emailUserpass));
} else {
// not use SMTP Authentication
session = Session.getDefaultInstance(props, null);
@@ -264,8 +245,7 @@ public class TestSendIcalMessage extends
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setSubject(subject);
mimeMessage.setFrom(new InternetAddress(from));
- mimeMessage.addRecipients(Message.RecipientType.TO,
- InternetAddress.parse(recipients, false));
+ mimeMessage.addRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients, false));
// -- Create a new message --
BodyPart msg = new MimeBodyPart();
@@ -293,6 +273,5 @@ public class TestSendIcalMessage extends
// Transport trans = session.getTransport("smtp");
Transport.send(mimeMessage);
-
}
}
Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java?rev=1726754&r1=1726753&r2=1726754&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java Tue Jan 26 09:57:16 2016
@@ -23,7 +23,7 @@ import static org.apache.openmeetings.ut
import static org.apache.openmeetings.util.OpenmeetingsVariables.wicketApplicationName;
import java.util.Date;
-import java.util.HashMap;
+import java.util.Map;
import java.util.TimeZone;
import java.util.UUID;
import java.util.Vector;
@@ -125,22 +125,20 @@ public class InvitationManager implement
boolean isOwner = owner.getId().equals(i.getInvitee().getId());
IcalHandler handler = new IcalHandler(MessageType.Cancel == type ? IcalHandler.ICAL_METHOD_CANCEL : IcalHandler.ICAL_METHOD_REQUEST);
- HashMap<String, String> attendeeList = handler.getAttendeeData(email, username, isOwner);
+ Map<String, String> attendeeList = handler.getAttendeeData(email, username, isOwner);
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+ Vector<Map<String, String>> atts = new Vector<Map<String, String>>();
atts.add(attendeeList);
// Defining Organizer
- HashMap<String, String> organizerAttendee = handler.getAttendeeData(email, username, isOwner);
+ Map<String, String> organizerAttendee = handler.getAttendeeData(email, username, isOwner);
organizerAttendee = handler.getAttendeeData(replyToEmail, owner.getLogin(), isOwner);
Appointment a = i.getAppointment();
// Create ICal Message
- //FIXME should be checked to generate valid time
- String meetingId = handler.addNewMeeting(a.getStart(), a.getEnd(),
- a.getTitle(), atts, invitation_link,
- organizerAttendee, a.getIcalId(), timezoneUtil.getTimeZone(owner));
+ String meetingId = handler.addNewMeeting(a.getStart(), a.getEnd(), a.getTitle(), atts, invitation_link,
+ organizerAttendee, a.getIcalId(), timezoneUtil.getTimeZone(owner).getID());
// Writing back meetingUid
if (Strings.isEmpty(a.getIcalId())) {
Modified: openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java?rev=1726754&r1=1726753&r2=1726754&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java (original)
+++ openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/IcalHandler.java Tue Jan 26 09:57:16 2016
@@ -25,9 +25,11 @@ import java.io.FileOutputStream;
import java.net.URI;
import java.util.Date;
import java.util.HashMap;
+import java.util.Map;
import java.util.Vector;
import net.fortuna.ical4j.data.CalendarOutputter;
+import net.fortuna.ical4j.model.Calendar;
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.TimeZone;
import net.fortuna.ical4j.model.TimeZoneRegistry;
@@ -58,13 +60,12 @@ import org.slf4j.Logger;
*/
public class IcalHandler {
private static final Logger log = Red5LoggerFactory.getLogger(IcalHandler.class, webAppRootKey);
+ static {
+ System.setProperty("net.fortuna.ical4j.timezone.update.enabled", "false");
+ }
/** ICal instance */
- private final net.fortuna.ical4j.model.Calendar icsCalendar;
-
- /** TimeZone */
- // private TimeZone timeZone;
- // private TimeZoneRegistry timeRegistry;
+ private final Calendar icsCalendar;
/** Creation of a new Event */
public final static Method ICAL_METHOD_REQUEST = Method.REQUEST;
@@ -72,7 +73,7 @@ public class IcalHandler {
public final static Method ICAL_METHOD_REFRESH = Method.REFRESH;
/**
- * Constructor with DefaultTimeZone
+ * Constructor
*
* @param method
* (@see IcalHandler Constants)
@@ -81,14 +82,10 @@ public class IcalHandler {
public IcalHandler(Method method) {
log.debug("Icalhandler method type : " + method);
- System.setProperty("net.fortuna.ical4j.timezone.update.enabled", "false");
-
- icsCalendar = new net.fortuna.ical4j.model.Calendar();
-
+ icsCalendar = new Calendar();
icsCalendar.getProperties().add(new ProdId("-//Events Calendar//iCal4j 1.0//EN"));
icsCalendar.getProperties().add(Version.VERSION_2_0);
icsCalendar.getProperties().add(CalScale.GREGORIAN);
-
icsCalendar.getProperties().add(method);
}
@@ -101,24 +98,25 @@ public class IcalHandler {
* @param name
* meeting name
* @param attendees
- * List of attendees (use getAttendeeData to retrieve valid
- * records)
+ * List of attendees (use getAttendeeData to retrieve valid records)
* @param description
* containing the meeting description
+ * @param organizer
+ * organizer
* @param uid
* (maybe null)
+ * @param javaTzId ID of owner's java time zone
* @return UID of Meeting
*/
// ---------------------------------------------------------------------------------------
- public String addNewMeeting(Date startDate,
- Date endDate, String name,
- Vector<HashMap<String, String>> attendees, String description,
- HashMap<String, String> organizer, String uid, java.util.TimeZone normalTimeZone)
- throws Exception {
+ public String addNewMeeting(Date startDate, Date endDate, String name,
+ Vector<Map<String, String>> attendees, String description,
+ Map<String, String> organizer, String uid, String javaTzId) throws Exception
+ {
TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
- TimeZone timeZone = registry.getTimeZone(normalTimeZone.getID());
+ TimeZone timeZone = registry.getTimeZone(javaTzId);
DateTime start = new DateTime(startDate);
start.setTimeZone(timeZone);
@@ -144,19 +142,11 @@ public class IcalHandler {
meeting.getProperties().add(ui);
- for (int i = 0; i < attendees.size(); i++) {
- HashMap<String, String> oneAtt = attendees.get(i);
-
- Attendee uno = new Attendee(URI.create(oneAtt.get("uri")));
-
- String chair = oneAtt.get("chair");
-
- if (chair.equals("0"))
- uno.getParameters().add(Role.REQ_PARTICIPANT);
- else
- uno.getParameters().add(Role.CHAIR);
-
- uno.getParameters().add(new Cn(oneAtt.get("cn")));
+ for (Map<String, String> att : attendees) {
+ Attendee uno = new Attendee(URI.create(att.get("uri")));
+ String chair = att.get("chair");
+ uno.getParameters().add("0".equals(chair) ? Role.REQ_PARTICIPANT : Role.CHAIR);
+ uno.getParameters().add(new Cn(att.get("cn")));
meeting.getProperties().add(uno);
}
@@ -169,36 +159,25 @@ public class IcalHandler {
icsCalendar.getComponents().add(meeting);
return ui.getValue();
-
}
- // ---------------------------------------------------------------------------------------
-
/**
* Use this function to build a valid record for the AttendeeList for
* addMeetings Generate a Attendee
*/
- // ------------------------------------------------------------------------------------------
- public HashMap<String, String> getAttendeeData(String emailAdress,
- String displayName, Boolean chair) {
-
- HashMap<String, String> oneRecord = new HashMap<String, String>();
+ public Map<String, String> getAttendeeData(String emailAdress, String displayName, boolean chair) {
+ Map<String, String> oneRecord = new HashMap<String, String>();
oneRecord.put("uri", "mailto:" + emailAdress);
oneRecord.put("cn", displayName);
oneRecord.put("chair", chair ? "1" : "0");
return oneRecord;
-
}
- // ------------------------------------------------------------------------------------------
-
/**
* Write iCal to File
*/
- // ------------------------------------------------------------------------------------------
public void writeDataToFile(String filerPath) throws Exception {
-
if (!filerPath.endsWith(".ics")) {
filerPath = filerPath + ".ics";
}
@@ -209,30 +188,20 @@ public class IcalHandler {
}
}
- // ------------------------------------------------------------------------------------------
-
/**
* Get IcalBody as ByteArray
*/
- // ------------------------------------------------------------------------------------------
public byte[] getIcalAsByteArray() throws Exception {
-
ByteArrayOutputStream bout = new ByteArrayOutputStream();
CalendarOutputter outputter = new CalendarOutputter();
outputter.output(icsCalendar, bout);
return bout.toByteArray();
-
}
- // ------------------------------------------------------------------------------------------
-
/**
* Retrieving Data as String
*/
- // ------------------------------------------------------------------------------------------
public String getICalDataAsString() {
return icsCalendar.toString();
}
- // ------------------------------------------------------------------------------------------
-
}
Modified: openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java?rev=1726754&r1=1726753&r2=1726754&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java (original)
+++ openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java Tue Jan 26 09:57:16 2016
@@ -22,13 +22,12 @@ import static org.apache.openmeetings.ut
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
-import java.io.IOException;
import java.net.SocketException;
import java.net.URI;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
-import java.util.HashMap;
+import java.util.Map;
import java.util.Properties;
import java.util.Vector;
@@ -43,12 +42,22 @@ import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
+import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.openmeetings.test.AbstractJUnitDefaults;
+import org.apache.openmeetings.util.mail.ByteArrayDataSource;
+import org.apache.openmeetings.util.mail.IcalHandler;
+import org.apache.openmeetings.util.mail.SmtpAuthenticator;
+import org.apache.wicket.util.string.Strings;
+import org.junit.Test;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
import net.fortuna.ical4j.data.CalendarOutputter;
import net.fortuna.ical4j.model.DateTime;
import net.fortuna.ical4j.model.TimeZone;
import net.fortuna.ical4j.model.TimeZoneRegistry;
import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
-import net.fortuna.ical4j.model.ValidationException;
import net.fortuna.ical4j.model.component.VEvent;
import net.fortuna.ical4j.model.component.VTimeZone;
import net.fortuna.ical4j.model.parameter.Cn;
@@ -62,16 +71,6 @@ import net.fortuna.ical4j.model.property
import net.fortuna.ical4j.model.property.Version;
import net.fortuna.ical4j.util.UidGenerator;
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.apache.openmeetings.util.mail.ByteArrayDataSource;
-import org.apache.openmeetings.util.mail.IcalHandler;
-import org.apache.openmeetings.util.mail.SmtpAuthenticator;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
public class TestSendIcalMessage extends AbstractJUnitDefaults {
private static final Logger log = Red5LoggerFactory.getLogger(TestSendIcalMessage.class, webAppRootKey);
@@ -87,8 +86,7 @@ public class TestSendIcalMessage extends
public void simpleInvitionIcalLink() {
// Create a TimeZone
- TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance()
- .createRegistry();
+ TimeZoneRegistry registry = TimeZoneRegistryFactory.getInstance().createRegistry();
TimeZone timezone = registry.getTimeZone("America/Mexico_City");
VTimeZone tz = timezone.getVTimeZone();
@@ -160,10 +158,7 @@ public class TestSendIcalMessage extends
icsCalendar.getProperties().add(Method.REQUEST);
- System.out.println(icsCalendar);
-
-
-
+ log.debug(icsCalendar.toString());
ByteArrayOutputStream bout = new ByteArrayOutputStream();
CalendarOutputter outputter = new CalendarOutputter();
@@ -172,10 +167,6 @@ public class TestSendIcalMessage extends
iCalMimeBody = bout.toByteArray();
sendIcalMessage();
- } catch (IOException e) {
- log.error("Error", e);
- } catch (ValidationException e) {
- log.error("Error", e);
} catch (Exception e) {
log.error("Error", e);
}
@@ -185,33 +176,26 @@ public class TestSendIcalMessage extends
@Test
public void sendInvitionIcalLink() {
try {
-
String email = "hans@webbase-design.de";
String username = "shans";
boolean invitor = false;
Calendar start = Calendar.getInstance();
-
Calendar end = Calendar.getInstance();
-
- IcalHandler handler = new IcalHandler(
- IcalHandler.ICAL_METHOD_REQUEST);
+ IcalHandler handler = new IcalHandler(IcalHandler.ICAL_METHOD_REQUEST);
// Transforming Meeting Members
- HashMap<String, String> attendeeList = handler.getAttendeeData(
- email, username, invitor);
+ Map<String, String> attendeeList = handler.getAttendeeData(email, username, invitor);
+ Map<String, String> organizerAttendee = handler.getAttendeeData(recipients, "seba-test", true);
- HashMap<String, String> organizerAttendee = handler
- .getAttendeeData(recipients, "seba-test", true);
-
- Vector<HashMap<String, String>> atts = new Vector<HashMap<String, String>>();
+ Vector<Map<String, String>> atts = new Vector<Map<String, String>>();
atts.add(attendeeList);
// Create ICal Message
String meetingId = handler.addNewMeeting(start.getTime(), end.getTime(), "test event",
atts, "localhost:5080/link_openmeetings",
- organizerAttendee, "", TimeZone.getDefault());
+ organizerAttendee, "", TimeZone.getDefault().getID());
log.debug("meetingId " + meetingId);
@@ -227,7 +211,6 @@ public class TestSendIcalMessage extends
}
private void sendIcalMessage() throws Exception {
-
log.debug("sendIcalMessage");
// Evaluating Configuration Data
@@ -249,12 +232,10 @@ public class TestSendIcalMessage extends
// Check for Authentification
Session session = null;
- if (emailUsername != null && emailUsername.length() > 0
- && emailUserpass != null && emailUserpass.length() > 0) {
+ if (!Strings.isEmpty(emailUsername) && !Strings.isEmpty(emailUserpass)) {
// use SMTP Authentication
props.put("mail.smtp.auth", "true");
- session = Session.getDefaultInstance(props, new SmtpAuthenticator(
- emailUsername, emailUserpass));
+ session = Session.getDefaultInstance(props, new SmtpAuthenticator(emailUsername, emailUserpass));
} else {
// not use SMTP Authentication
session = Session.getDefaultInstance(props, null);
@@ -264,8 +245,7 @@ public class TestSendIcalMessage extends
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setSubject(subject);
mimeMessage.setFrom(new InternetAddress(from));
- mimeMessage.addRecipients(Message.RecipientType.TO,
- InternetAddress.parse(recipients, false));
+ mimeMessage.addRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients, false));
// -- Create a new message --
BodyPart msg = new MimeBodyPart();
@@ -293,6 +273,5 @@ public class TestSendIcalMessage extends
// Transport trans = session.getTransport("smtp");
Transport.send(mimeMessage);
-
}
}