Update of
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter
In directory james.mmbase.org:/tmp/cvs-serv27209
Modified Files:
Tag: b1_5
NewsletterCronJob.java
Log Message:
CMSC-1186 Newsletter: remove bounce checking from live environment
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter
See also: http://www.mmbase.org/jira/browse/CMSC-1186
Index: NewsletterCronJob.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Portlets/portlets-newsletter/src/java/com/finalist/newsletter/NewsletterCronJob.java,v
retrieving revision 1.18.2.3
retrieving revision 1.18.2.4
diff -u -b -r1.18.2.3 -r1.18.2.4
--- NewsletterCronJob.java 15 Dec 2008 06:08:17 -0000 1.18.2.3
+++ NewsletterCronJob.java 16 Dec 2008 06:41:08 -0000 1.18.2.4
@@ -1,16 +1,28 @@
package com.finalist.newsletter;
-import java.text.*;
-import java.util.*;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import javax.mail.MessagingException;
import net.sf.mmapps.modules.cloudprovider.CloudProviderFactory;
import org.apache.commons.lang.time.DateUtils;
import org.mmbase.applications.crontab.AbstractCronJob;
-import org.mmbase.bridge.*;
+import org.mmbase.bridge.Cloud;
+import org.mmbase.bridge.Node;
+import org.mmbase.bridge.NodeList;
+import org.mmbase.bridge.NodeManager;
+import org.mmbase.bridge.NodeQuery;
import org.mmbase.util.logging.Logger;
import org.mmbase.util.logging.Logging;
-import javax.mail.MessagingException;
+
+import com.finalist.cmsc.navigation.ServerUtil;
import com.finalist.cmsc.services.community.ApplicationContextFactory;
import com.finalist.cmsc.services.publish.Publish;
import com.finalist.newsletter.publisher.bounce.BounceChecker;
@@ -49,30 +61,31 @@
private void createPublication(List<Node> newslettersToPublish, Node
newsletter,
Object scheduleExpression, Date lastCreatedDateTime) {
- String expression = (String)scheduleExpression;
+ String expression = (String) scheduleExpression;
String[] expressions = expression.split("\\|");
- if(isPublish(expressions,lastCreatedDateTime)) {
+ if (isPublish(expressions, lastCreatedDateTime)) {
newslettersToPublish.add(newsletter);
}
}
- private boolean isPublish(String[] expressions,Date lastCreatedDateTime) {
+ private boolean isPublish(String[] expressions, Date lastCreatedDateTime) {
boolean isPublish = false;
DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm");
Date minDate = null;
try {
minDate = df.parse("01-01-1970 00:00");
} catch (ParseException e) {
- log.debug("--> Parse date Exception");;
+ log.debug("--> Parse date Exception");
+ ;
}
Date now = new Date();
Calendar calender = Calendar.getInstance();
//expressions[0] value: 1 once
- if(expressions[0].equals("1")) {
- String startDatetime = expressions[1]+"
"+expressions[2]+":"+expressions[3];
+ if (expressions[0].equals("1")) {
+ String startDatetime = expressions[1] + " " + expressions[2] + ":" +
expressions[3];
try {
Date startDate = df.parse(startDatetime);
- if(now.after(startDate) && (lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime))) {
+ if (now.after(startDate) && (lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime))) {
isPublish = true;
}
}
@@ -81,30 +94,27 @@
}
}//expressions[0] : 2 daily
else if (expressions[0].equals("2")) {
- String startDatetime = expressions[1]+"
"+expressions[2]+":"+expressions[3];
+ String startDatetime = expressions[1] + " " + expressions[2] + ":" +
expressions[3];
try {
Date startDate = df.parse(startDatetime);
- if(now.after(startDate)) {
- if(expressions[4].equals("0")) {
+ if (now.after(startDate)) {
+ if (expressions[4].equals("0")) {
isPublish = compareDate(lastCreatedDateTime, isPublish,
minDate, now);
- }
- else if(expressions[4].equals("1")) {
- if(calender.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY
&& calender.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
+ } else if (expressions[4].equals("1")) {
+ if (calender.get(Calendar.DAY_OF_WEEK) != Calendar.SATURDAY
&& calender.get(Calendar.DAY_OF_WEEK) != Calendar.SUNDAY) {
isPublish = compareDate(lastCreatedDateTime, isPublish,
minDate, now);
}
- }
- else if(expressions[4].equals("2")) {
+ } else if (expressions[4].equals("2")) {
int interval = Integer.parseInt(expressions[5]);
- if(lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)) {
- if(DateUtils.isSameDay(DateUtils.addDays(startDate,
interval),now)) {
+ if (lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)) {
+ if (DateUtils.isSameDay(DateUtils.addDays(startDate,
interval), now)) {
isPublish = true;
}
- }
- else {
-
if(DateUtils.isSameDay(DateUtils.addDays(lastCreatedDateTime, interval),now)) {
+ } else {
+ if
(DateUtils.isSameDay(DateUtils.addDays(lastCreatedDateTime, interval), now)) {
isPublish = true;
}
}
@@ -115,52 +125,50 @@
log.debug("--> Parse date Exception");
}
}//expressions[0] : 3 weekly
- else if(expressions[0].equals("3")) {
+ else if (expressions[0].equals("3")) {
Calendar startTime = getStartCalendar(expressions);
char[] weeks = expressions[4].toCharArray();
for (char week2 : weeks) {
String week = String.valueOf(week2);
- if((calender.get(Calendar.DAY_OF_WEEK) != 1 &&
calender.get(Calendar.DAY_OF_WEEK) == (Integer.parseInt(week)+1)) ||
(calender.get(Calendar.DAY_OF_WEEK) == 1 && Integer.parseInt(week) == 7)) {
- if(calender.after(startTime)) {
+ if ((calender.get(Calendar.DAY_OF_WEEK) != 1 &&
calender.get(Calendar.DAY_OF_WEEK) == (Integer.parseInt(week) + 1)) ||
(calender.get(Calendar.DAY_OF_WEEK) == 1 && Integer.parseInt(week) == 7)) {
+ if (calender.after(startTime)) {
try {
- if(lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)){
+ if (lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)) {
isPublish = true;
break;
- }
- else {
+ } else {
int interval = Integer.parseInt(expressions[3]);
Date beCreate =
DateUtils.addWeeks(lastCreatedDateTime, interval);
- if(DateUtils.isSameDay(new Date(),beCreate )) {
+ if (DateUtils.isSameDay(new Date(), beCreate)) {
isPublish = true;
break;
}
}
}
catch (NumberFormatException e) {
- log.debug("-->NumberFormatException "+e.getMessage());
+ log.debug("-->NumberFormatException " + e.getMessage());
}
}
}
}
}//expressions[0] : 4 monthly
- else if(expressions[0].equals("4")) {
+ else if (expressions[0].equals("4")) {
Calendar startTime = getStartCalendar(expressions);
- if(expressions[3].equals("0")) {
+ if (expressions[3].equals("0")) {
String dayOfMonth = expressions[4];
char[] months = expressions[5].toCharArray();
for (char month2 : months) {
String month = String.valueOf(month2);
- if(!month.equals("a") && !month.equals("b") &&
(Integer.parseInt(month) == calender.get(Calendar.MONTH)) || (month.equals("b")
&& calender.get(Calendar.MONTH) == 11) || (month.equals("a") &&
calender.get(Calendar.MONTH) == 10)) {
- if(calender.get(Calendar.DAY_OF_MONTH) ==
Integer.parseInt(dayOfMonth)) {
- if(calender.after(startTime)) {
- if(lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)){
+ if (!month.equals("a") && !month.equals("b") &&
(Integer.parseInt(month) == calender.get(Calendar.MONTH)) || (month.equals("b")
&& calender.get(Calendar.MONTH) == 11) || (month.equals("a") &&
calender.get(Calendar.MONTH) == 10)) {
+ if (calender.get(Calendar.DAY_OF_MONTH) ==
Integer.parseInt(dayOfMonth)) {
+ if (calender.after(startTime)) {
+ if (lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)) {
isPublish = true;
break;
- }
- else {
- if(!DateUtils.isSameDay(new
Date(),lastCreatedDateTime )) {
+ } else {
+ if (!DateUtils.isSameDay(new Date(),
lastCreatedDateTime)) {
isPublish = true;
break;
}
@@ -169,24 +177,22 @@
}
}
}
- }
- else if(expressions[3].equals("1")) {
+ } else if (expressions[3].equals("1")) {
String weekOfMonth = expressions[4];
String week = expressions[5];
char[] months = expressions[6].toCharArray();
for (char month2 : months) {
String month = String.valueOf(month2);
- if(!month.equals("a") && !month.equals("b") &&
(Integer.parseInt(month) == calender.get(Calendar.MONTH)) || (month.equals("a")
&& calender.get(Calendar.MONTH) == 10) || (month.equals("b") &&
calender.get(Calendar.MONTH) == 11)) {
- if(calender.get(Calendar.WEEK_OF_MONTH) ==
Integer.parseInt(weekOfMonth)) {
- if(calender.get(Calendar.DAY_OF_WEEK)!= 1 &&
calender.get(Calendar.DAY_OF_WEEK)== (Integer.parseInt(week)+1)) {
- if(calender.after(startTime)) {
- if(lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)){
+ if (!month.equals("a") && !month.equals("b") &&
(Integer.parseInt(month) == calender.get(Calendar.MONTH)) || (month.equals("a")
&& calender.get(Calendar.MONTH) == 10) || (month.equals("b") &&
calender.get(Calendar.MONTH) == 11)) {
+ if (calender.get(Calendar.WEEK_OF_MONTH) ==
Integer.parseInt(weekOfMonth)) {
+ if (calender.get(Calendar.DAY_OF_WEEK) != 1 &&
calender.get(Calendar.DAY_OF_WEEK) == (Integer.parseInt(week) + 1)) {
+ if (calender.after(startTime)) {
+ if (lastCreatedDateTime == null ||
DateUtils.isSameDay(minDate, lastCreatedDateTime)) {
isPublish = true;
break;
- }
- else {
- if(!DateUtils.isSameDay(new
Date(),lastCreatedDateTime )) {
+ } else {
+ if (!DateUtils.isSameDay(new Date(),
lastCreatedDateTime)) {
isPublish = true;
break;
}
@@ -210,11 +216,10 @@
private boolean compareDate(Date lastCreatedDateTime, boolean isPublish,
Date minDate, Date now) {
- if(lastCreatedDateTime == null || DateUtils.isSameDay(minDate,
lastCreatedDateTime)) {
+ if (lastCreatedDateTime == null || DateUtils.isSameDay(minDate,
lastCreatedDateTime)) {
isPublish = true;
- }
- else {
- if(!DateUtils.isSameDay(now, lastCreatedDateTime)) {
+ } else {
+ if (!DateUtils.isSameDay(now, lastCreatedDateTime)) {
isPublish = true;
}
}
@@ -225,13 +230,14 @@
public void init() {
NewsletterService newsletterService = (NewsletterService)
ApplicationContextFactory.getBean("newsletterServices");
BounceChecker checker = new BounceChecker(newsletterService);
- if (!checker.isRunning()) {
+ if (!checker.isRunning() && (ServerUtil.isStaging() ||
ServerUtil.isSingle())) {
checker.start();
}
}
@Override
public void run() {
+ if(ServerUtil.isSingle() || ServerUtil.isStaging()) {
List<Node> newslettersToPublish = getNewslettersToPublish();
for (int newsletterIterator = 0; newsletterIterator <
newslettersToPublish.size(); newsletterIterator++) {
Node newsletterNode = newslettersToPublish.get(newsletterIterator);
@@ -243,13 +249,15 @@
Node publicationNode =
NewsletterPublicationUtil.createPublication(newsletterNumber, true);
try {
NewsletterPublicationUtil.freezeEdition(publicationNode);
- }
- catch (MessagingException e) {
+ } catch (MessagingException e) {
log.error(e);
}
+ if(ServerUtil.isStaging() && !ServerUtil.isSingle()) {
Publish.publish(publicationNode);
}
}
+ }
+ }
@Override
public void stop() {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs