julio 2016-04-29 20:07:47 +00:00
parent 273baed541
commit 4c428f5dee
2 changed files with 187 additions and 88 deletions

View File

@ -0,0 +1,91 @@
package com.rjconsultores.ventaboletos.web.utilerias;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.log4j.Logger;
public class IPValidatorUtileria {
private static Logger log = Logger.getLogger(IPValidatorUtileria.class);
private Pattern pattern;
private Matcher matcher;
private static final String IPADDRESS_PATTERN = "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." +
"([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";
public IPValidatorUtileria() {
pattern = Pattern.compile(IPADDRESS_PATTERN);
}
/**
* Validate ip address with regular expression
*
* @param ip
* ip address for validation
* @return true valid ip address, false invalid ip address
*/
public boolean validate(final String ip) {
matcher = pattern.matcher(ip);
return matcher.matches();
}
public static String getIp() {
try {
return InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
log.error("", e);
}
return null;
}
public static String getIpExternalAWS() {
BufferedReader in = null;
try {
URL whatismyip = new URL("http://checkip.amazonaws.com");
in = new BufferedReader(new InputStreamReader(whatismyip.openStream()));
String ip = in.readLine();
return ip;
} catch (MalformedURLException e1) {
log.error("", e1);
} catch (IOException e) {
log.error("", e);
} finally {
if (in != null) {
try {
in.close();
} catch (IOException e) {
log.error("", e);
}
}
}
return null;
}
public static boolean ipExternoException(String ipServidor) {
if (ipServidor.equals(getIpExternalAWS())) {
log.info(" IP capturado: " + getIpExternalAWS());
log.info(" IP: " + ipServidor);
return true;
} else {
return false;
}
}
public static void main(String[] args) {
System.out.println("Current IP address : " + IPValidatorUtileria.getIp());
System.out.println("Current IP address AWS: " + IPValidatorUtileria.getIpExternalAWS());
}
}

View File

@ -4,14 +4,9 @@
*/ */
package com.rjconsultores.ventaboletos.web.utilerias; package com.rjconsultores.ventaboletos.web.utilerias;
import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.service.ConstanteService;
import com.rjconsultores.ventaboletos.web.gui.controladores.job.GeneracionCorridaJob;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.WebApp;
import org.quartz.JobDetail; import org.quartz.JobDetail;
import org.quartz.Scheduler; import org.quartz.Scheduler;
import org.quartz.SchedulerException; import org.quartz.SchedulerException;
@ -21,6 +16,13 @@ import org.quartz.TriggerUtils;
import org.quartz.impl.StdSchedulerFactory; import org.quartz.impl.StdSchedulerFactory;
import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.WebApp;
import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.service.ConstanteService;
import com.rjconsultores.ventaboletos.web.gui.controladores.job.GeneracionCorridaJob;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
/** /**
* *
@ -53,24 +55,23 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit {
Labels.register(new MyLabelLocatorGeneral((ServletContext) wapp.getNativeContext())); Labels.register(new MyLabelLocatorGeneral((ServletContext) wapp.getNativeContext()));
Labels.register(new MyLabelLocatorCliente((ServletContext) wapp.getNativeContext())); Labels.register(new MyLabelLocatorCliente((ServletContext) wapp.getNativeContext()));
//Generacion Automatica de Corridas Constante constanteServidorException = getConstanteService().buscarPorNomeConstante("SERVIDOR_EXCEPCION_GENERACION_CORRIDA");
String ipConstante = constanteServidorException == null ? "" : constanteServidorException.getValorconstante();
if (!IPValidatorUtileria.ipExternoException(ipConstante)) {
// Generacion Automatica de Corridas
jobGeneracionCorridas(); jobGeneracionCorridas();
} }
}
private Integer[] horaExecucion() { private Integer[] horaExecucion() {
ApplicationContext appContext = AppContext.getApplicationContext(); Constante constante = getConstanteService().buscarPorNomeConstante("HORA_GENERACION_CORRIDA");
BeanFactory factory = (BeanFactory) appContext;
ConstanteService cs = (ConstanteService) factory.getBean("constanteService");
Constante constante = cs.buscarPorNomeConstante("HORA_GENERACION_CORRIDA");
Integer[] arrayHoraMinuto = new Integer[2]; Integer[] arrayHoraMinuto = new Integer[2];
arrayHoraMinuto[0] = 1; arrayHoraMinuto[0] = 1;
arrayHoraMinuto[1] = 0; arrayHoraMinuto[1] = 0;
if ( (constante == null) || (constante.getValorconstante() == null)) { if ((constante == null) || (constante.getValorconstante() == null)) {
return null; return null;
} }
@ -109,7 +110,7 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit {
Integer[] hora = horaExecucion(); Integer[] hora = horaExecucion();
if(hora == null){ if (hora == null) {
log.debug("constante HORA_GENERACION_CORRIDA não habilitada."); log.debug("constante HORA_GENERACION_CORRIDA não habilitada.");
return; return;
} }
@ -118,19 +119,19 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit {
Trigger trigger = TriggerUtils.makeDailyTrigger("generacionCorridasTrigger", hora[0], hora[1]); Trigger trigger = TriggerUtils.makeDailyTrigger("generacionCorridasTrigger", hora[0], hora[1]);
//TESTE TRIGGER // TESTE TRIGGER
//Trigger trigger = TriggerUtils.makeImmediateTrigger("generacionCorridasTrigger", 1, 1000); // Trigger trigger = TriggerUtils.makeImmediateTrigger("generacionCorridasTrigger", 1, 1000);
trigger.setName("generacionCorridasTrigger"); trigger.setName("generacionCorridasTrigger");
JobDetail job = sched.getJobDetail(jobDetail.getName(), jobDetail.getGroup()); JobDetail job = sched.getJobDetail(jobDetail.getName(), jobDetail.getGroup());
log.info("Job="+jobDetail.getName() +"." +jobDetail.getGroup()); log.info("Job=" + jobDetail.getName() + "." + jobDetail.getGroup());
if (job != null) { if (job != null) {
log.info("Job ya existia"); log.info("Job ya existia");
boolean deleted= sched.deleteJob(job.getName(), Scheduler.DEFAULT_GROUP); boolean deleted = sched.deleteJob(job.getName(), Scheduler.DEFAULT_GROUP);
log.info("Deleted="+deleted); log.info("Deleted=" + deleted);
} }
sched.scheduleJob(jobDetail, trigger); sched.scheduleJob(jobDetail, trigger);
@ -141,4 +142,11 @@ public class MyAppInit implements org.zkoss.zk.ui.util.WebAppInit {
log.error(ex); log.error(ex);
} }
} }
private ConstanteService getConstanteService() {
ApplicationContext appContext = AppContext.getApplicationContext();
BeanFactory factory = (BeanFactory) appContext;
ConstanteService cs = (ConstanteService) factory.getBean("constanteService");
return cs;
}
} }