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/11/02 15:31:42 UTC

svn commit: r1767709 [2/2] - in /openmeetings/application: branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/ branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/ branches/3.1.x/op...

Copied: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java (from r1767708, openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java?p2=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java&p1=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractAppointmentTemplate.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,26 +16,60 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import java.util.TimeZone;
 
 import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.service.mail.template.AbstractTemplatePanel;
+import org.apache.openmeetings.service.mail.template.DashOmTextLabel;
+import org.apache.openmeetings.service.mail.template.OmTextLabel;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.wicket.core.util.string.ComponentRenderer;
+import org.apache.wicket.markup.html.panel.Fragment;
 
-public abstract class AbstractAppointmentTemplate extends AbstractTemplatePanel {
+public abstract class AbstractSubjectEmailTemplate extends AbstractTemplatePanel {
 	private static final long serialVersionUID = 1L;
 	protected Appointment a;
 	protected TimeZone tz;
+	private String email = null;
+	private String subject = null;
 
-	public AbstractAppointmentTemplate(Long langId, Appointment a, TimeZone tz) {
+
+	public AbstractSubjectEmailTemplate(Long langId, Appointment a, TimeZone tz) {
 		super(langId);
 		this.a = a;
 		this.tz = tz;
 	}
 
-	public String getEmail() {
-		return renderPanel(this).toString();
+	abstract void omInit();
+
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		omInit();
+		email = ComponentRenderer.renderComponent(this).toString();
+		subject = ComponentRenderer.renderComponent(getSubjectFragment()).toString();
+	}
+
+	public final String getEmail() {
+		return email;
 	}
 
-	public abstract String getSubject();
+	abstract String getPrefix();
+
+	Fragment getSubjectFragment() {
+		Fragment f = new Fragment(COMP_ID, "subject", this);
+		f.add(new OmTextLabel("prefix", getPrefix())
+				, new OmTextLabel("title", a.getTitle())
+				, new OmTextLabel("start", CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
+				, new DashOmTextLabel("dash")
+				, new OmTextLabel("end", CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz))
+				);
+		return f;
+	}
+
+	public final String getSubject() {
+		return subject;
+	}
 }

Copied: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java (from r1767708, openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AppointmentReminderTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java?p2=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java&p1=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AppointmentReminderTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AppointmentReminderTemplate.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,15 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class AppointmentReminderTemplate extends AbstractAppointmentTemplate {
+public class AppointmentReminderTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
 
 	private AppointmentReminderTemplate(Long langId, Appointment a, TimeZone tz) {
 		super(langId, a, tz);
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1158L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -46,19 +49,14 @@ public class AppointmentReminderTemplate
 		add(new Label("endLbl", getString(1154L, langId)));
 		add(new Label("end", CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz)));
 	}
-	
+
 	public static AppointmentReminderTemplate get(Long langId, Appointment a, TimeZone tz) {
 		ensureApplication(langId);
 		return new AppointmentReminderTemplate(langId, a, tz);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1158L, langId)).append(" ").append(" ").append(a.getTitle()).append(' ')
-			.append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1158, langId);
 	}
 }

Copied: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java (from r1767708, openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CanceledAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java?p2=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java&p1=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CanceledAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CanceledAppointmentTemplate.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,17 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class CanceledAppointmentTemplate extends AbstractAppointmentTemplate {
+public class CanceledAppointmentTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
+	private final String invitorName;
 
 	private CanceledAppointmentTemplate(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		super(langId, a, tz);
+		this.invitorName = invitorName;
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1157L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -48,19 +53,14 @@ public class CanceledAppointmentTemplate
 		add(new Label("invitorLbl", getString(1156L, langId)));
 		add(new Label("invitor", invitorName));
 	}
-	
+
 	public static CanceledAppointmentTemplate get(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		ensureApplication(langId);
 		return new CanceledAppointmentTemplate(langId, a, tz, invitorName);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1157L, langId)).append(" ").append(a.getTitle())
-			.append(" ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1157, langId);
 	}
 }

Copied: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html (from r1767708, openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.html)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html?p2=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html&p1=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.html&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.html (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html Wed Nov  2 15:31:41 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

Copied: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java (from r1767708, openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java?p2=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java&p1=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,17 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class CreatedAppointmentTemplate extends AbstractAppointmentTemplate {
+public class CreatedAppointmentTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
+	private final String invitorName;
 
 	private CreatedAppointmentTemplate(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		super(langId, a, tz);
+		this.invitorName = invitorName;
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1151L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -48,19 +53,14 @@ public class CreatedAppointmentTemplate
 		add(new Label("invitorLbl", getString(1156L, langId)));
 		add(new Label("invitor", invitorName));
 	}
-	
+
 	public static CreatedAppointmentTemplate get(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		ensureApplication(langId);
 		return new CreatedAppointmentTemplate(langId, a, tz, invitorName);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1151L, langId)).append(" ").append(a.getTitle())
-			.append(" ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1151, langId);
 	}
 }

Copied: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java (from r1767708, openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/UpdatedAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java?p2=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java&p1=openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/UpdatedAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/UpdatedAppointmentTemplate.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,17 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class UpdatedAppointmentTemplate extends AbstractAppointmentTemplate {
+public class UpdatedAppointmentTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
+	private final String invitorName;
 
 	private UpdatedAppointmentTemplate(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		super(langId, a, tz);
+		this.invitorName = invitorName;
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1155L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -48,19 +53,14 @@ public class UpdatedAppointmentTemplate
 		add(new Label("invitorLbl", getString(1156L, langId)));
 		add(new Label("invitor", invitorName));
 	}
-	
+
 	public static UpdatedAppointmentTemplate get(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		ensureApplication(langId);
 		return new UpdatedAppointmentTemplate(langId, a, tz, invitorName);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1155L, langId)).append(" ").append(a.getTitle())
-			.append(" ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1155, langId);
 	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java Wed Nov  2 15:31:41 2016
@@ -18,28 +18,35 @@
  */
 package org.apache.openmeetings.service.quartz.scheduler;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.service.calendar.AppointmentLogic;
 import org.apache.openmeetings.util.InitializationContainer;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class MeetingReminderJob {
-	private static Logger log = Red5LoggerFactory.getLogger(MeetingReminderJob.class, OpenmeetingsVariables.webAppRootKey);
+	private static Logger log = Red5LoggerFactory.getLogger(MeetingReminderJob.class, webAppRootKey);
 	@Autowired
 	private AppointmentLogic appointmentLogic;
-	
-	public void doIt() {
+	@Autowired
+	private RecordingDao recordingDao;
+
+	public void remindIt() {
 		log.debug("MeetingReminderJob.execute");
 		if (!InitializationContainer.initComplete) {
 			return;
 		}
 		try {
 			appointmentLogic.doScheduledMeetingReminder();
-		} catch (Exception err){
-			log.error("execute",err);
+		} catch (Exception err) {
+			log.error("execute", err);
 		}
 	}
+
+	public void remindExpiring() {
+		//recordingDao.
+	}
 }

Modified: openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/room/InvitationManager.java Wed Nov  2 15:31:41 2016
@@ -43,11 +43,11 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.service.mail.template.AbstractAppointmentTemplate;
-import org.apache.openmeetings.service.mail.template.CanceledAppointmentTemplate;
-import org.apache.openmeetings.service.mail.template.CreatedAppointmentTemplate;
 import org.apache.openmeetings.service.mail.template.InvitationTemplate;
-import org.apache.openmeetings.service.mail.template.UpdatedAppointmentTemplate;
+import org.apache.openmeetings.service.mail.template.subject.AbstractSubjectEmailTemplate;
+import org.apache.openmeetings.service.mail.template.subject.CanceledAppointmentTemplate;
+import org.apache.openmeetings.service.mail.template.subject.CreatedAppointmentTemplate;
+import org.apache.openmeetings.service.mail.template.subject.UpdatedAppointmentTemplate;
 import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.openmeetings.util.mail.IcalHandler;
 import org.apache.wicket.util.string.Strings;
@@ -86,7 +86,7 @@ public class InvitationManager implement
 		String invitorName = owner.getFirstname() + " " + owner.getLastname();
 		Long langId = mm.getUser().getLanguageId();
 		TimeZone tz = timezoneUtil.getTimeZone(mm.getUser());
-		AbstractAppointmentTemplate t = null;
+		AbstractSubjectEmailTemplate t = null;
 		switch (type) {
 			case Cancel:
 				t = CanceledAppointmentTemplate.get(langId, a, tz, invitorName);

Modified: openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/application/branches/3.2.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Wed Nov  2 15:31:41 2016
@@ -110,12 +110,12 @@
 		<property name="repeatInterval" value="300000" /><!-- repeat every 300 seconds == 5 minutes -->
 	</bean>
 
-	<bean id="openmeetings.MeetingReminderJob" class="org.apache.openmeetings.service.quartz.scheduler.MeetingReminderJob" />
+	<bean id="meetingReminderJob" class="org.apache.openmeetings.service.quartz.scheduler.MeetingReminderJob" />
 	<bean id="meetingReminderClear" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 		<property name="targetObject">
-			<ref bean="openmeetings.MeetingReminderJob" />
+			<ref bean="meetingReminderJob" />
 		</property>
-		<property name="targetMethod" value="doIt"/>
+		<property name="targetMethod" value="remindIt"/>
 		<property name="concurrent" value="false" />
 	</bean>
 	<bean id="triggerMeetingReminder" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">

Modified: openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java (original)
+++ openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/record/RecordingDao.java Wed Nov  2 15:31:41 2016
@@ -174,6 +174,10 @@ public class RecordingDao {
 		return null;
 	}
 
+	public List<Recording> getExpiring() {
+		return null;
+	}
+
 	public List<Recording> getByParent(Long parentId) {
 		return em.createNamedQuery("getRecordingsByParent", Recording.class).setParameter("parentId", parentId).getResultList();
 	}

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/calendar/AppointmentLogic.java Wed Nov  2 15:31:41 2016
@@ -46,7 +46,7 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.service.mail.template.AppointmentReminderTemplate;
+import org.apache.openmeetings.service.mail.template.subject.AppointmentReminderTemplate;
 import org.apache.wicket.util.string.Strings;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.html?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.html (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.html Wed Nov  2 15:31:41 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractTemplatePanel.java Wed Nov  2 15:31:41 2016
@@ -25,75 +25,31 @@ import org.apache.openmeetings.IWebSessi
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.util.FormatHelper;
-import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.behavior.AttributeAppender;
-import org.apache.wicket.markup.IMarkupResourceStreamProvider;
 import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
-import org.apache.wicket.markup.html.WebPage;
 import org.apache.wicket.markup.html.panel.Panel;
-import org.apache.wicket.protocol.http.BufferedWebResponse;
 import org.apache.wicket.protocol.http.WebSession;
-import org.apache.wicket.request.Response;
-import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.util.resource.IResourceStream;
-import org.apache.wicket.util.resource.StringResourceStream;
 
 public abstract class AbstractTemplatePanel extends Panel {
 	private static final long serialVersionUID = 1L;
+	public static final String COMP_ID = "template";
 	protected long langId;
-	
+
 	public static <T> T getBean(Class<T> clazz) {
 		return ensureApplication().getOmBean(clazz);
 	}
-	
+
 	public static IWebSession getOmSession() {
 		return (IWebSession)WebSession.get();
 	}
-	
+
 	public AbstractTemplatePanel(Long langId) {
-		super(TemplatePage.COMP_ID);
+		super(COMP_ID);
 		this.langId = langId == null ? getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAULT_LANG_KEY, Long.class, "1") : langId;
 		add(new TransparentWebMarkupContainer("container").add(AttributeAppender.append("dir", FormatHelper.isRtlLanguage(LabelDao.languages.get(langId).toLanguageTag()) ? "rtl" : "ltr")));
 	}
-	
+
 	public static String getString(long id, long languageId) {
 		return ensureApplication().getOmString(id, languageId);
 	}
-
-	/**
-	 * Collects the html generated by the rendering of a page.
-	 * 
-	 * @param panel
-	 *            the panel that should be rendered.
-	 * @return the html rendered by the panel
-	 */
-	protected static CharSequence renderPanel(final Panel panel) {
-		RequestCycle requestCycle = RequestCycle.get();
-
-		final Response oldResponse = requestCycle.getResponse();
-		BufferedWebResponse tempResponse = new BufferedWebResponse(null);
-
-		try {
-			requestCycle.setResponse(tempResponse);
-
-			TemplatePage page = new TemplatePage();
-			page.add(panel);
-
-			panel.render();
-		} finally {
-			requestCycle.setResponse(oldResponse);
-		}
-
-		return tempResponse.getText();
-	}
-
-	public static class TemplatePage extends WebPage implements IMarkupResourceStreamProvider {
-		private static final long serialVersionUID = 1L;
-		public static final String COMP_ID = "template";
-
-		@Override
-		public IResourceStream getMarkupResourceStream(MarkupContainer container, Class<?> containerClass) {
-			return new StringResourceStream("<wicket:container wicket:id='" + COMP_ID + "'></wicket:container>");
-		}
-	}
 }

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/FeedbackTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/FeedbackTemplate.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/FeedbackTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/FeedbackTemplate.java Wed Nov  2 15:31:41 2016
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.service.mail.template;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
+import org.apache.wicket.core.util.string.ComponentRenderer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
 
@@ -35,6 +36,6 @@ public class FeedbackTemplate extends Ab
 	}
 	
 	public static String getEmail(String username, String email, String message) {
-		return renderPanel(new FeedbackTemplate(username, email, message)).toString();
+		return ComponentRenderer.renderComponent(new FeedbackTemplate(username, email, message)).toString();
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/InvitationTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/InvitationTemplate.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/InvitationTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/InvitationTemplate.java Wed Nov  2 15:31:41 2016
@@ -20,6 +20,7 @@ package org.apache.openmeetings.service.
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
+import org.apache.wicket.core.util.string.ComponentRenderer;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
@@ -47,6 +48,6 @@ public class InvitationTemplate extends
 	
 	public static String getEmail(Long langId, String invitorName, String message, String link) {
 		ensureApplication(langId);
-		return renderPanel(new InvitationTemplate(langId, invitorName, message, link)).toString();
+		return ComponentRenderer.renderComponent(new InvitationTemplate(langId, invitorName, message, link)).toString();
 	}
 }

Added: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/OmTextLabel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/OmTextLabel.java?rev=1767709&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/OmTextLabel.java (added)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/OmTextLabel.java Wed Nov  2 15:31:41 2016
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.service.mail.template;
+
+import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
+
+import org.apache.wicket.markup.ComponentTag;
+import org.apache.wicket.markup.MarkupStream;
+import org.apache.wicket.markup.html.basic.Label;
+
+public class OmTextLabel extends Label {
+	private static final long serialVersionUID = 1L;
+	private static final String WICKET_VISIBLE = ":visible";
+
+	public OmTextLabel(String id, long key, long langId) {
+		this(id, "" + key, langId);
+	}
+
+	public OmTextLabel(String id, String key, long langId) {
+		this(id, ensureApplication().getOmString(key, langId));
+	}
+
+	public OmTextLabel(String id, String label) {
+		super(id, label);
+		setRenderBodyOnly(true);
+	}
+
+	@Override
+	public void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) {
+		final String vis = openTag.getAttribute(markupStream.getWicketNamespace() + WICKET_VISIBLE);
+		if (vis != null && Boolean.FALSE.equals(Boolean.valueOf(vis))) {
+			//skip the body
+			return;
+		}
+		super.onComponentTagBody(markupStream, openTag);
+	}
+}

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RegisterUserTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RegisterUserTemplate.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RegisterUserTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RegisterUserTemplate.java Wed Nov  2 15:31:41 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.service.mail.template;
 
+import org.apache.wicket.core.util.string.ComponentRenderer;
 import org.apache.wicket.markup.html.WebMarkupContainer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
@@ -38,6 +39,6 @@ public class RegisterUserTemplate extend
 	}
 
 	public static String getEmail(String username, String email, String verification_url) {
-		return renderPanel(new RegisterUserTemplate(username, email, verification_url)).toString();
+		return ComponentRenderer.renderComponent(new RegisterUserTemplate(username, email, verification_url)).toString();
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactConfirmTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactConfirmTemplate.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactConfirmTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactConfirmTemplate.java Wed Nov  2 15:31:41 2016
@@ -19,6 +19,7 @@
 package org.apache.openmeetings.service.mail.template;
 
 import org.apache.openmeetings.db.entity.user.UserContact;
+import org.apache.wicket.core.util.string.ComponentRenderer;
 import org.apache.wicket.markup.html.basic.Label;
 
 public class RequestContactConfirmTemplate extends AbstractTemplatePanel {
@@ -35,6 +36,6 @@ public class RequestContactConfirmTempla
 	}
 	
 	public static String getEmail(UserContact contact) {
-		return renderPanel(new RequestContactConfirmTemplate(contact)).toString();
+		return ComponentRenderer.renderComponent(new RequestContactConfirmTemplate(contact)).toString();
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactTemplate.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/RequestContactTemplate.java Wed Nov  2 15:31:41 2016
@@ -21,6 +21,7 @@ package org.apache.openmeetings.service.
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
 import org.apache.openmeetings.db.entity.user.User;
+import org.apache.wicket.core.util.string.ComponentRenderer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
 
@@ -40,6 +41,6 @@ public class RequestContactTemplate exte
 	}
 	
 	public static String getEmail(User userToAdd, User user) {
-		return renderPanel(new RequestContactTemplate(userToAdd, user)).toString();
+		return ComponentRenderer.renderComponent(new RequestContactTemplate(userToAdd, user)).toString();
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/ResetPasswordTemplate.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/ResetPasswordTemplate.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/ResetPasswordTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/ResetPasswordTemplate.java Wed Nov  2 15:31:41 2016
@@ -18,6 +18,7 @@
  */
 package org.apache.openmeetings.service.mail.template;
 
+import org.apache.wicket.core.util.string.ComponentRenderer;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.link.ExternalLink;
 
@@ -31,6 +32,6 @@ public class ResetPasswordTemplate exten
 	}
 	
 	public static String getEmail(String link) {
-		return renderPanel(new ResetPasswordTemplate(link)).toString();
+		return ComponentRenderer.renderComponent(new ResetPasswordTemplate(link)).toString();
 	}
 }

Added: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.html
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.html?rev=1767709&view=auto
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.html (added)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.html Wed Nov  2 15:31:41 2016
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements.  See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership.  The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License.  You may obtain a copy of the License at
+  
+      http://www.apache.org/licenses/LICENSE-2.0
+    	  
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied.  See the License for the
+  specific language governing permissions and limitations
+  under the License.
+  
+-->
+<html xmlns:wicket="http://wicket.apache.org">
+<wicket:extend>
+	<wicket:child/>
+
+	<wicket:fragment wicket:id="subject"><span wicket:id="prefix"></span> <span wicket:id="title"></span> <span 
+		wicket:id="start"></span><span wicket:id="dash"></span><span wicket:id="end"></span></wicket:fragment>
+</wicket:extend>
+</html>

Copied: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java (from r1767708, openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java?p2=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java&p1=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AbstractAppointmentTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AbstractSubjectEmailTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,26 +16,60 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import java.util.TimeZone;
 
 import org.apache.openmeetings.db.entity.calendar.Appointment;
+import org.apache.openmeetings.service.mail.template.AbstractTemplatePanel;
+import org.apache.openmeetings.service.mail.template.DashOmTextLabel;
+import org.apache.openmeetings.service.mail.template.OmTextLabel;
+import org.apache.openmeetings.util.CalendarPatterns;
+import org.apache.wicket.core.util.string.ComponentRenderer;
+import org.apache.wicket.markup.html.panel.Fragment;
 
-public abstract class AbstractAppointmentTemplate extends AbstractTemplatePanel {
+public abstract class AbstractSubjectEmailTemplate extends AbstractTemplatePanel {
 	private static final long serialVersionUID = 1L;
 	protected Appointment a;
 	protected TimeZone tz;
+	private String email = null;
+	private String subject = null;
 
-	public AbstractAppointmentTemplate(Long langId, Appointment a, TimeZone tz) {
+
+	public AbstractSubjectEmailTemplate(Long langId, Appointment a, TimeZone tz) {
 		super(langId);
 		this.a = a;
 		this.tz = tz;
 	}
 
-	public String getEmail() {
-		return renderPanel(this).toString();
+	abstract void omInit();
+
+	@Override
+	protected void onInitialize() {
+		super.onInitialize();
+		omInit();
+		email = ComponentRenderer.renderComponent(this).toString();
+		subject = ComponentRenderer.renderComponent(getSubjectFragment()).toString();
+	}
+
+	public final String getEmail() {
+		return email;
 	}
 
-	public abstract String getSubject();
+	abstract String getPrefix();
+
+	Fragment getSubjectFragment() {
+		Fragment f = new Fragment(COMP_ID, "subject", this);
+		f.add(new OmTextLabel("prefix", getPrefix())
+				, new OmTextLabel("title", a.getTitle())
+				, new OmTextLabel("start", CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
+				, new DashOmTextLabel("dash")
+				, new OmTextLabel("end", CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz))
+				);
+		return f;
+	}
+
+	public final String getSubject() {
+		return subject;
+	}
 }

Copied: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java (from r1767708, openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AppointmentReminderTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java?p2=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java&p1=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AppointmentReminderTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/AppointmentReminderTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/AppointmentReminderTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,15 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class AppointmentReminderTemplate extends AbstractAppointmentTemplate {
+public class AppointmentReminderTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
 
 	private AppointmentReminderTemplate(Long langId, Appointment a, TimeZone tz) {
 		super(langId, a, tz);
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1158L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -46,19 +49,14 @@ public class AppointmentReminderTemplate
 		add(new Label("endLbl", getString(1154L, langId)));
 		add(new Label("end", CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz)));
 	}
-	
+
 	public static AppointmentReminderTemplate get(Long langId, Appointment a, TimeZone tz) {
 		ensureApplication(langId);
 		return new AppointmentReminderTemplate(langId, a, tz);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1158L, langId)).append(" ").append(" ").append(a.getTitle()).append(' ')
-			.append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1158, langId);
 	}
 }

Copied: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java (from r1767708, openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CanceledAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java?p2=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java&p1=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CanceledAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CanceledAppointmentTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CanceledAppointmentTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,17 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class CanceledAppointmentTemplate extends AbstractAppointmentTemplate {
+public class CanceledAppointmentTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
+	private final String invitorName;
 
 	private CanceledAppointmentTemplate(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		super(langId, a, tz);
+		this.invitorName = invitorName;
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1157L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -48,19 +53,14 @@ public class CanceledAppointmentTemplate
 		add(new Label("invitorLbl", getString(1156L, langId)));
 		add(new Label("invitor", invitorName));
 	}
-	
+
 	public static CanceledAppointmentTemplate get(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		ensureApplication(langId);
 		return new CanceledAppointmentTemplate(langId, a, tz, invitorName);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1157L, langId)).append(" ").append(a.getTitle())
-			.append(" ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1157, langId);
 	}
 }

Copied: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html (from r1767708, openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.html)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html?p2=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html&p1=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.html&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.html (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.html Wed Nov  2 15:31:41 2016
@@ -9,7 +9,7 @@
   with the License.  You may obtain a copy of the License at
   
       http://www.apache.org/licenses/LICENSE-2.0
-    	  
+  
   Unless required by applicable law or agreed to in writing,
   software distributed under the License is distributed on an
   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

Copied: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java (from r1767708, openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java?p2=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java&p1=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/CreatedAppointmentTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/CreatedAppointmentTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,17 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class CreatedAppointmentTemplate extends AbstractAppointmentTemplate {
+public class CreatedAppointmentTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
+	private final String invitorName;
 
 	private CreatedAppointmentTemplate(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		super(langId, a, tz);
+		this.invitorName = invitorName;
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1151L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -48,19 +53,14 @@ public class CreatedAppointmentTemplate
 		add(new Label("invitorLbl", getString(1156L, langId)));
 		add(new Label("invitor", invitorName));
 	}
-	
+
 	public static CreatedAppointmentTemplate get(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		ensureApplication(langId);
 		return new CreatedAppointmentTemplate(langId, a, tz, invitorName);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1151L, langId)).append(" ").append(a.getTitle())
-			.append(" ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1151, langId);
 	}
 }

Copied: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java (from r1767708, openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/UpdatedAppointmentTemplate.java)
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java?p2=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java&p1=openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/UpdatedAppointmentTemplate.java&r1=1767708&r2=1767709&rev=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/UpdatedAppointmentTemplate.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/mail/template/subject/UpdatedAppointmentTemplate.java Wed Nov  2 15:31:41 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.openmeetings.service.mail.template;
+package org.apache.openmeetings.service.mail.template.subject;
 
 import static org.apache.openmeetings.db.util.ApplicationHelper.ensureApplication;
 
@@ -28,12 +28,17 @@ import org.apache.wicket.markup.html.Web
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.util.string.Strings;
 
-public class UpdatedAppointmentTemplate extends AbstractAppointmentTemplate {
+public class UpdatedAppointmentTemplate extends AbstractSubjectEmailTemplate {
 	private static final long serialVersionUID = 1L;
+	private final String invitorName;
 
 	private UpdatedAppointmentTemplate(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		super(langId, a, tz);
+		this.invitorName = invitorName;
+	}
 
+	@Override
+	void omInit() {
 		add(new Label("titleLbl", getString(1155L, langId)));
 		add(new Label("title", a.getTitle()));
 		add(new WebMarkupContainer("descContainer")
@@ -48,19 +53,14 @@ public class UpdatedAppointmentTemplate
 		add(new Label("invitorLbl", getString(1156L, langId)));
 		add(new Label("invitor", invitorName));
 	}
-	
+
 	public static UpdatedAppointmentTemplate get(Long langId, Appointment a, TimeZone tz, String invitorName) {
 		ensureApplication(langId);
 		return new UpdatedAppointmentTemplate(langId, a, tz, invitorName);
 	}
 
 	@Override
-	public String getSubject() {
-		StringBuilder sb = new StringBuilder();
-		sb.append(getString(1155L, langId)).append(" ").append(a.getTitle())
-			.append(" ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getStart(), tz))
-			.append(" - ").append(CalendarPatterns.getDateWithTimeByMiliSecondsAndTimeZone(a.getEnd(), tz));
-
-		return sb.toString();
+	String getPrefix() {
+		return ensureApplication().getOmString(1155, langId);
 	}
 }

Modified: openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java (original)
+++ openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/quartz/scheduler/MeetingReminderJob.java Wed Nov  2 15:31:41 2016
@@ -18,28 +18,35 @@
  */
 package org.apache.openmeetings.service.quartz.scheduler;
 
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
+import org.apache.openmeetings.db.dao.record.RecordingDao;
 import org.apache.openmeetings.service.calendar.AppointmentLogic;
 import org.apache.openmeetings.util.InitializationContainer;
-import org.apache.openmeetings.util.OpenmeetingsVariables;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 
 public class MeetingReminderJob {
-	private static Logger log = Red5LoggerFactory.getLogger(MeetingReminderJob.class, OpenmeetingsVariables.webAppRootKey);
+	private static Logger log = Red5LoggerFactory.getLogger(MeetingReminderJob.class, webAppRootKey);
 	@Autowired
 	private AppointmentLogic appointmentLogic;
-	
-	public void doIt() {
+	@Autowired
+	private RecordingDao recordingDao;
+
+	public void remindIt() {
 		log.debug("MeetingReminderJob.execute");
 		if (!InitializationContainer.initComplete) {
 			return;
 		}
 		try {
 			appointmentLogic.doScheduledMeetingReminder();
-		} catch (Exception err){
-			log.error("execute",err);
+		} catch (Exception err) {
+			log.error("execute", err);
 		}
 	}
+
+	public void remindExpiring() {
+		//recordingDao.
+	}
 }

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=1767709&r1=1767708&r2=1767709&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 Wed Nov  2 15:31:41 2016
@@ -43,11 +43,11 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.service.mail.template.AbstractAppointmentTemplate;
-import org.apache.openmeetings.service.mail.template.CanceledAppointmentTemplate;
-import org.apache.openmeetings.service.mail.template.CreatedAppointmentTemplate;
 import org.apache.openmeetings.service.mail.template.InvitationTemplate;
-import org.apache.openmeetings.service.mail.template.UpdatedAppointmentTemplate;
+import org.apache.openmeetings.service.mail.template.subject.AbstractSubjectEmailTemplate;
+import org.apache.openmeetings.service.mail.template.subject.CanceledAppointmentTemplate;
+import org.apache.openmeetings.service.mail.template.subject.CreatedAppointmentTemplate;
+import org.apache.openmeetings.service.mail.template.subject.UpdatedAppointmentTemplate;
 import org.apache.openmeetings.util.crypt.CryptProvider;
 import org.apache.openmeetings.util.mail.IcalHandler;
 import org.apache.wicket.util.string.Strings;
@@ -86,7 +86,7 @@ public class InvitationManager implement
 		String invitorName = owner.getFirstname() + " " + owner.getLastname();
 		Long langId = mm.getUser().getLanguageId();
 		TimeZone tz = timezoneUtil.getTimeZone(mm.getUser());
-		AbstractAppointmentTemplate t = null;
+		AbstractSubjectEmailTemplate t = null;
 		switch (type) {
 			case Cancel:
 				t = CanceledAppointmentTemplate.get(langId, a, tz, invitorName);

Modified: openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1767709&r1=1767708&r2=1767709&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Wed Nov  2 15:31:41 2016
@@ -108,12 +108,12 @@
 		<property name="repeatInterval" value="300000" /><!-- repeat every 300 seconds == 5 minutes -->
 	</bean>
 
-	<bean id="openmeetings.MeetingReminderJob" class="org.apache.openmeetings.service.quartz.scheduler.MeetingReminderJob" />
+	<bean id="meetingReminderJob" class="org.apache.openmeetings.service.quartz.scheduler.MeetingReminderJob" />
 	<bean id="meetingReminderClear" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
 		<property name="targetObject">
-			<ref bean="openmeetings.MeetingReminderJob" />
+			<ref bean="meetingReminderJob" />
 		</property>
-		<property name="targetMethod" value="doIt"/>
+		<property name="targetMethod" value="remindIt"/>
 		<property name="concurrent" value="false" />
 	</bean>
 	<bean id="triggerMeetingReminder" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">