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);
-
 	}
 }