From ffebca05ec323af74ff276d53ce51246b5f2767d Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 10:26:56 -0500 Subject: [PATCH 01/21] Facade with DB services Facade which exposes a database service for keeping each execution information. --- .../src/com/lazyloading/FachadaHttpServlet.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java new file mode 100644 index 0000000..f734d29 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/FachadaHttpServlet.java @@ -0,0 +1,16 @@ +package com.lazyloading; + +import javax.servlet.ServletException; +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + + +public class FachadaHttpServlet extends HttpServlet { + + @Override + protected void doGet(HttpServletRequest request, + HttpServletResponse response) throws ServletException { + String datosEjecucion = request.getParameter("datosEjecucion"); + } +} From 0cb1ecf603ae680a7c54592a20686eab66752a77 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 10:29:30 -0500 Subject: [PATCH 02/21] Utilities file for system configuration --- .../UtilidadConfiguracionSistema.java | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java new file mode 100644 index 0000000..8f81a59 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/configuracion/UtilidadConfiguracionSistema.java @@ -0,0 +1,78 @@ +package com.lazyloading.configuracion; + +import java.util.ResourceBundle; + +public final class UtilidadConfiguracionSistema { + + private static final String RES_BUNDLE_CONFIGURACION = "com.lazyloading.configuracion.configuracion"; + private static final String LENGUAJE = "com.lazyloading.configuracion.locale.lenguaje"; + private static final String PAIS = "com.lazyloading.configuracion.locale.pais"; + private static final String RES_BUNDLE_MENSAJES_BASE_NAME = "com.lazyloading.configuracion.locale.resbundlemensajesbasename"; + + private static final String SEPARADOR = "com.lazyloading.configuracion.tokenizacion.separador"; + private static final String REEMPLAZO = "com.lazyloading.configuracion.tokenizacion.reemplazo"; + private static final String UNIDAD_PESO = "com.lazyloading.configuracion.peso.unidadpeso"; + private static final String LOGGIN_PATH = "com.lazyloading.configuracion.logs.loggingpath"; + private static final String LOGGING_SYSTEM_PROPERTY = "com.lazyloading.configuracion.logs.logginsysproperty"; + + private UtilidadConfiguracionSistema() { + super(); + } + + public static String getResBundleMensajesBaseName() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String mensajesBaseName = resourceBundle.getString(RES_BUNDLE_MENSAJES_BASE_NAME); + return mensajesBaseName; + } + + public static String getLenguaje() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String lenguaje = resourceBundle.getString(LENGUAJE); + return lenguaje; + } + + public static String getPais() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String pais = resourceBundle.getString(PAIS); + return pais; + } + + public static String getSeparador() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String separador = resourceBundle.getString(SEPARADOR); + return separador; + } + + public static String getReemplazo() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String reemplazo = resourceBundle.getString(REEMPLAZO); + return reemplazo; + } + + public static String getUnidadPeso() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String unidadPeso = resourceBundle.getString(UNIDAD_PESO); + return unidadPeso; + } + + public static String getLoggingPath() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String loggingPath = resourceBundle.getString(LOGGIN_PATH); + return loggingPath; + } + + public static String getLoggingSystemProperty() { + ResourceBundle resourceBundle = + ResourceBundle.getBundle(RES_BUNDLE_CONFIGURACION); + String loggingSystemProperty = resourceBundle.getString(LOGGING_SYSTEM_PROPERTY); + return loggingSystemProperty; + } + +} From 964163b7abb014f0e57d1b0bdf9c8c0a79fcdb6c Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 10:36:43 -0500 Subject: [PATCH 03/21] Constant messages file File for keeping system messages. --- .../constante/ConstanteMensajes.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java new file mode 100644 index 0000000..ee16cc8 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/ConstanteMensajes.java @@ -0,0 +1,20 @@ +package com.lazyloading.constante; + +public enum ConstanteMensajes { + + DATOS_EJECUCION_NULL("com.lazyloading.mensajes.excepcion.datosejecucionnull"); + + private String key; + + private ConstanteMensajes(String key) { + this.key = key; + } + + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + +} From 3e21be1a7cf8fe98f0f33bd3d4439287b9420035 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 10:40:57 -0500 Subject: [PATCH 04/21] Connection types Enum constants file with some types of database connections. --- .../src/com/lazyloading/constante/TipoConexionBD.java | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java new file mode 100644 index 0000000..c09c1ee --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/constante/TipoConexionBD.java @@ -0,0 +1,5 @@ +package com.lazyloading.constante; + +public enum TipoConexionBD { + CONEXION_MYSQL; +} From bc9257661e368bd426737c0203ddbe4badf2e8f4 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 10:54:57 -0500 Subject: [PATCH 05/21] Controller methods interface An interface for controller methods which include business logic. --- .../src/com/lazyloading/controlador/Controlador.java | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java new file mode 100644 index 0000000..bc6779f --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/Controlador.java @@ -0,0 +1,7 @@ +package com.lazyloading.controlador; + +public interface Controlador { + + public abstract void registrarEjecucion(String datosEjecucion); + +} From 7b5ba17919deaeee1dd0ca4d0f7ab77b7fdf5d47 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 10:57:43 -0500 Subject: [PATCH 06/21] Current controller The controller which includes business logic. --- .../controlador/ControladorDatosEjecucion.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java new file mode 100644 index 0000000..60a148e --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/controlador/ControladorDatosEjecucion.java @@ -0,0 +1,15 @@ +package com.lazyloading.controlador; + +import com.lazyloading.dto.EjecucionDTO; +import com.lazyloading.utilidad.UtilidadValidadorFachadaHttpServlet; + +public class ControladorDatosEjecucion implements Controlador { + + @Override + public void registrarEjecucion(String datosEjecucion) { + UtilidadValidadorFachadaHttpServlet.validarDatosEjecucionNull(datosEjecucion); + UtilidadValidadorFachadaHttpServlet.validarDatosEjecucionVacio(datosEjecucion); + EjecucionDTO ejecucionDTO = new EjecucionDTO(); + ejecucionDTO.procesarEjecucion(datosEjecucion); + } +} From f027348c40066ca1ed0bd5d8498505520821d271 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 11:07:38 -0500 Subject: [PATCH 07/21] Data Access Object file class File class which contains the logic from exchanging EjecucionDTO objects with MySQL database. --- .../implementacion/EjecucionMySQLDAO.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java new file mode 100644 index 0000000..b80adf7 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/implementacion/EjecucionMySQLDAO.java @@ -0,0 +1,45 @@ +package com.lazyloading.dao.implementacion; + +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.sql.Statement; + +import com.lazyloading.dao.interfaz.EjecucionDAO; +import com.lazyloading.db.factoria.FactoriaConexionesBD; +import com.lazyloading.dto.ConexionDTO; +import com.lazyloading.dto.EjecucionDTO; + +public class EjecucionMySQLDAO implements EjecucionDAO { + + @Override + public void adicionarEjecucion(EjecucionDTO ejecucionDTO) { + FactoriaConexionesBD factoriaConexionesBD = FactoriaConexionesBD.getFactoriaConexionesBD(); + ConexionDTO conexionDTO = factoriaConexionesBD.obtenerConexionMySQL(); + String insercionSQL = ""; + try { + PreparedStatement preparedStatement = conexionDTO.obtenerPreparedStatement(insercionSQL); + } catch (SQLException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + @Override + public EjecucionDTO buscarEjecucion(String codigoEjecucion) { + // TODO Auto-generated method stub + return null; + } + + @Override + public void actualizarEjecucion(EjecucionDTO ejecucionDTO) { + // TODO Auto-generated method stub + + } + + @Override + public void eliminarEjecucion(EjecucionDTO ejecucionDTO) { + // TODO Auto-generated method stub + + } + +} From 3e5e8bb78dee1e36ef104840cec0088d565c9aa9 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 11:22:14 -0500 Subject: [PATCH 08/21] DAO interface for Ejecucion model object --- .../com/lazyloading/interfaz/EjecucionDAO.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java new file mode 100644 index 0000000..4992e58 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/interfaz/EjecucionDAO.java @@ -0,0 +1,15 @@ +package com.lazyloading.dao.interfaz; + +import com.lazyloading.dto.EjecucionDTO; + +public interface EjecucionDAO { + + public abstract void adicionarEjecucion(EjecucionDTO ejecucionDTO); + + public abstract EjecucionDTO buscarEjecucion(String codigoEjecucion); + + public abstract void actualizarEjecucion(EjecucionDTO ejecucionDTO); + + public abstract void eliminarEjecucion(EjecucionDTO ejecucionDTO); + +} From 333a9d2afc4ff8be3d97415fff320aa05f27c96b Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 11:33:10 -0500 Subject: [PATCH 09/21] Utilities file for DB connection --- .../db/conexion/UtilidadConexionBD.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java new file mode 100644 index 0000000..d8e947d --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/conexion/UtilidadConexionBD.java @@ -0,0 +1,34 @@ +package com.lazyloading.db.conexion; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.util.Properties; + +public final class UtilidadConexionBD { + + public static Connection obtenerConexion(String url, Properties properties) + throws SQLException { + validarParametros(url, properties); + Connection conexionBD = + DriverManager.getConnection(url, properties); + return conexionBD; + } + + public static Connection obtenerConexion(String url, String user, String password) + throws SQLException { + validarParametros(url, user, password); + Connection conexionBD = + DriverManager.getConnection(url, user, password); + return conexionBD; + } + + private static void validarParametros(String url, Properties properties) { + // TODO Auto-generated method stub + } + + private static void validarParametros(String url, String user, String password) { + // TODO Auto-generated method stub + } + +} From c9dedca29cd5fa278fe7444725a41b45dcd02540 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 11:37:24 -0500 Subject: [PATCH 10/21] Constants for MySQL connection. --- .../db/constante/ConstanteMySQLBD.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java new file mode 100644 index 0000000..1ef8e84 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java @@ -0,0 +1,35 @@ +package com.lazyloading.db.constante; + +import com.lazyloading.mensaje.UtilidadMensajes; + +public enum ConstanteMySQLBD { + + MYSQL_HOST_ADDRESS("com.lazyloading.db.mysql.hostaddress"), + MYSQL_HOST_PORT("com.lazyloading.db.mysql.hostport"), + MYSQL_HOST_DATABASE("com.lazyloading.db.mysql.hostdatabase"), + MYSQL_USER("com.lazyloading.db.mysql.usuario"), + MYSQL_PASSWORD("com.lazyloading.db.mysql.password"), + MYSQL_URL_FORMAT("com.lazyloading.db.mysql.urlformat"); + + private String valor; + + private ConstanteMySQLBD(String valor) { + this.valor = valor; + } + + public String getValor() { + return valor; + } + public void setValor(String valor) { + this.valor = valor; + } + + public static String getURLCompleta() { + String urlFormat = UtilidadMensajes.buscarMensaje(MYSQL_URL_FORMAT.getValor()); + String urlCompleta = String.format(urlFormat, MYSQL_HOST_ADDRESS.getValor(), + MYSQL_HOST_PORT.getValor(), + MYSQL_HOST_DATABASE.getValor()); + return urlCompleta; + } + +} From de877f7bd1c17d8c7f747a61cc9dcbf2202b3f81 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 11:39:52 -0500 Subject: [PATCH 11/21] File line fixing Fixing twenty nine and thirty lines. --- .../src/com/lazyloading/db/constante/ConstanteMySQLBD.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java index 1ef8e84..d38b0a0 100644 --- a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/db/constante/ConstanteMySQLBD.java @@ -26,9 +26,10 @@ public void setValor(String valor) { public static String getURLCompleta() { String urlFormat = UtilidadMensajes.buscarMensaje(MYSQL_URL_FORMAT.getValor()); - String urlCompleta = String.format(urlFormat, MYSQL_HOST_ADDRESS.getValor(), - MYSQL_HOST_PORT.getValor(), - MYSQL_HOST_DATABASE.getValor()); + String urlCompleta = + String.format(urlFormat, MYSQL_HOST_ADDRESS.getValor(), + MYSQL_HOST_PORT.getValor(), + MYSQL_HOST_DATABASE.getValor()); return urlCompleta; } From e0d0dab583a947f3183c8e3fc64d54a9ddf904ff Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 11:49:52 -0500 Subject: [PATCH 12/21] Connection factory class Factory class for keeping different database connections. --- .../factoria/FactoriaConexionesBD.java | 99 +++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java new file mode 100644 index 0000000..c48575d --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/factoria/FactoriaConexionesBD.java @@ -0,0 +1,99 @@ +package com.lazyloading.db.factoria; + +import java.sql.Connection; +import java.sql.SQLException; +import java.util.Locale; +import java.util.Set; +import java.util.TreeSet; + +import com.lazyloading.db.conexion.UtilidadConexionBD; +import com.lazyloading.db.constante.ConstanteMySQLBD; +import com.lazyloading.dto.ConexionDTO; +import com.lazyloading.excepcion.ExcepcionFactoriaConexionesBD; +import com.lazyloading.factoria.FactoriaLocale; +import com.lazyloading.mensaje.UtilidadMensajes; + +public class FactoriaConexionesBD { + + private Set listaConexionesMySQL; + + private static FactoriaConexionesBD factoriaConexionesDB; + + private FactoriaConexionesBD() { + listaConexionesMySQL = new TreeSet(); + } + + public static FactoriaConexionesBD getFactoriaConexionesBD() { + if(factoriaConexionesDB == null) { + factoriaConexionesDB = new FactoriaConexionesBD(); + } + return factoriaConexionesDB; + } + + public ConexionDTO obtenerConexionMySQL() throws ExcepcionFactoriaConexionesBD { + ConexionDTO conexionDTODisponible = null; + this.validarListaConexiones(); + for(ConexionDTO conexionDTO : listaConexionesMySQL) { + if(conexionDTO.isDisponible()) { + conexionDTODisponible = conexionDTO; + } + } + this.validarConexionDTODisponible(conexionDTODisponible); + conexionDTODisponible.setDisponible(false); + return conexionDTODisponible; + } + + public void cerrarConexion(ConexionDTO conexionDTO) { + this.validarConexionDTO(conexionDTO); + conexionDTO.setDisponible(true); + } + + private void validarListaConexiones() { + if(listaConexionesMySQL.isEmpty()) { + try { + this.crearConexionMySQL(); + } catch (SQLException ex) { + String key = "com.lazyloading.mensajes.excepcion.validarlistaconexiones"; + String mensaje = UtilidadMensajes.buscarMensaje(key); + throw new ExcepcionFactoriaConexionesBD(mensaje, ex); + } + } + } + + private void crearConexionMySQL() throws SQLException { + String url = ConstanteMySQLBD.getURLCompleta(); + String usuario = ConstanteMySQLBD.MYSQL_USER.getValor(); + String clave = ConstanteMySQLBD.MYSQL_PASSWORD.getValor(); + Connection conexionBD = UtilidadConexionBD.obtenerConexion(url, usuario, clave); + ConexionDTO conexionDTO = this.crearConexionDTO(conexionBD); + this.listaConexionesMySQL.add(conexionDTO); + } + + private ConexionDTO crearConexionDTO(Connection conexionJDBC) { + ConexionDTO conexionDTO = new ConexionDTO(); + conexionDTO.setConexionBD(conexionJDBC); + conexionDTO.setDisponible(true); + return conexionDTO; + } + + private void validarConexionDTODisponible(ConexionDTO conexionDTO) + throws ExcepcionFactoriaConexionesBD { + if(conexionDTO == null) { + String key = "com.lazyloading.mensajes.excepcion.obtenerconexionmysqlnull"; + Locale locale = FactoriaLocale.getFactoriaLocale().getLocale(); + String mensaje = UtilidadMensajes.buscarMensaje(key, locale); + throw new ExcepcionFactoriaConexionesBD(mensaje); + } + } + + private void validarConexionDTO(ConexionDTO conexionDTO) + throws ExcepcionFactoriaConexionesBD { + if(conexionDTO == null) { + String key = "com.lazyloading.mensajes.excepcion.cerrarconexionnull"; + Locale locale = FactoriaLocale.getFactoriaLocale().getLocale(); + String mensaje = UtilidadMensajes.buscarMensaje(key, locale); + throw new ExcepcionFactoriaConexionesBD(mensaje); + } + } + +} From 520bbfeb09e9607ef7d9b21b6518c3d497d3e3df Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 12:06:53 -0500 Subject: [PATCH 13/21] Connection file class Connection file class for encapsulating a real connection to a database. --- .../src/com/lazyloading/dto/ConexionDTO.java | 112 ++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java diff --git a/LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java new file mode 100644 index 0000000..9b3f669 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/com/lazyloading/dto/ConexionDTO.java @@ -0,0 +1,112 @@ +package com.lazyloading.dto; + +import java.io.Serializable; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; + +import com.lazyloading.constante.TipoConexionBD; +import com.lazyloading.db.factoria.FactoriaConexionesBD; +import com.lazyloading.excepcion.ExcepcionConexionDTO; +import com.lazyloading.mensaje.UtilidadMensajes; + +public class ConexionDTO implements Comparable, Serializable { + + private Connection conexionBD; + private boolean disponible; + private TipoConexionBD tipoConexionBD; + + public boolean isDisponible() { + return disponible; + } + + public void setDisponible(boolean disponible) { + this.disponible = disponible; + } + + public Connection getConexionBD() { + return conexionBD; + } + + public void setConexionBD(Connection conexionBD) { + this.conexionBD = conexionBD; + } + + public TipoConexionBD getTipoConexionBD() { + return tipoConexionBD; + } + + public void setTipoConexionBD(TipoConexionBD tipoConexionBD) { + this.tipoConexionBD = tipoConexionBD; + } + + public void cerrarConexion() { + FactoriaConexionesBD factoriaConexionesDB = + FactoriaConexionesBD.getFactoriaConexionesBD(); + factoriaConexionesDB.cerrarConexion(this); + } + + public Statement obtenerStatement() throws SQLException { + this.validarConexionBD(); + Statement statement = conexionBD.createStatement(); + return statement; + } + + public PreparedStatement obtenerPreparedStatement(String sql) throws SQLException { + this.validarConexionBD(); + PreparedStatement preparedStatement = conexionBD.prepareStatement(sql); + return preparedStatement; + } + + @Override + public boolean equals(Object object) { + boolean resultado = false; + if(object instanceof ConexionDTO) { + ConexionDTO otraConexionDTO = (ConexionDTO) object; + Connection otraConexionBD = otraConexionDTO.getConexionBD(); + resultado = conexionBD.equals(otraConexionBD); + } + return resultado; + } + + @Override + public int hashCode() throws ExcepcionConexionDTO { + this.validarConexionBD(); + int resultado = conexionBD.hashCode() * 25 + 70; + return resultado; + } + + @Override + public int compareTo(ConexionDTO otraConexionDTO) { + byte resultado = 0; + if(otraConexionDTO == null) { + resultado = 1; + return resultado; + } + Connection otraConexionBD = otraConexionDTO.getConexionBD(); + resultado = this.validarHashCode(otraConexionBD); + return resultado; + } + + private void validarConexionBD() throws ExcepcionConexionDTO { + if(conexionBD == null) { + String key = "com.lazyloading.mensajes.excepcion.conexionbdnull"; + String mensaje = UtilidadMensajes.buscarMensaje(key); + throw new ExcepcionConexionDTO(mensaje); + } + } + + private byte validarHashCode(Connection otraConexionBD) { + if(otraConexionBD == null) { + return 1; + } else if(conexionBD.hashCode() == otraConexionBD.hashCode()) { + return 0; + } else if(conexionBD.hashCode() > otraConexionBD.hashCode()) { + return 1; + } else { + return -1; + } + } +} From 26dc250a6cd3c495215650da296e20e67180f32e Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sat, 2 Sep 2017 14:57:20 -0500 Subject: [PATCH 14/21] Input file to test functionality An input file for testing the main functionality exposed. --- workspaces/lazy_loading_example_input.txt | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 workspaces/lazy_loading_example_input.txt diff --git a/workspaces/lazy_loading_example_input.txt b/workspaces/lazy_loading_example_input.txt new file mode 100644 index 0000000..d7aa422 --- /dev/null +++ b/workspaces/lazy_loading_example_input.txt @@ -0,0 +1,40 @@ +5 +4 +30 +30 +1 +1 +3 +20 +20 +20 +11 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +6 +9 +19 +29 +39 +49 +59 +10 +32 +56 +76 +8 +44 +60 +47 +85 +71 +91 \ No newline at end of file From dda98b2c884e971fc10f4a587977940ad6cb8fbd Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sun, 17 Sep 2017 22:42:30 -0500 Subject: [PATCH 15/21] Configuration properties file A file containing properties for different system tasks. --- .../lazyloading/configuracion/configuracion.properties | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties new file mode 100644 index 0000000..513a29e --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/configuracion.properties @@ -0,0 +1,10 @@ +com.lazyloading.configuracion.codigoresultadoexitoso = 0 +com.lazyloading.configuracion.codigoresultadoerror = 1 +com.lazyloading.configuracion.mensajeejecucionexito = La persistencia de la ejecucion fue exitosa +com.lazyloading.configuracion.mensajeejecucionerror = ERROR: La persistencia de la ejecucion fue fallida + +com.lazyloading.configuracion.locale.lenguaje = es +com.lazyloading.configuracion.locale.pais = CO +com.lazyloading.configuracion.locale.resbundlemensajesbasename = com.lazyloading.mensaje.mensajes +com.lazyloading.configuracion.tokenizacion.separador = , +com.lazyloading.configuracion.logs.loggingpath = From 11a45db0b73bd8d54ec5cd0f1aeb25678222f450 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sun, 17 Sep 2017 22:44:43 -0500 Subject: [PATCH 16/21] MySQL statements file A file containing sql statements for MySQL database. --- .../configuracion/db/mysql/mysqlsql_es_CO.properties | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties new file mode 100644 index 0000000..e053a3d --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mysqlsql_es_CO.properties @@ -0,0 +1,2 @@ +com.lazyloading.db.mysql.insertarejecucion = INSERT INTO EJECUCION(NUMERO_ID,FECHA) VALUES (?,?) +com.lazyloading.db.mysql.insertarlineaimpresion = INSERT INTO LINEA_EJECUCION(DESCRIPCION,ID_EJECUCION,FECHA_EJECUCION) VALUES (?,?,?) From 8a907ee93fe35ff2512ea2671d6ce26e0071b06f Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sun, 17 Sep 2017 22:46:03 -0500 Subject: [PATCH 17/21] Messages file for MySQL database --- .../configuracion/db/mysql/mensajes_es_CO.properties | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mensajes_es_CO.properties diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mensajes_es_CO.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mensajes_es_CO.properties new file mode 100644 index 0000000..83ea3e1 --- /dev/null +++ b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mensajes_es_CO.properties @@ -0,0 +1,10 @@ +com.lazyloading.mensajes.excepcion.datosejecucionnull = ERROR: Los datos relativos a la ejecucion apuntan a un valor null +com.lazyloading.mensajes.excepcion.errorinsertarejecucion = ERROR: Ocurrio un error al insertar una ejecucion en la base de datos +com.lazyloading.mensajes.excepcion.errorinsertarlineasimpresion = ERROR: Ocurrio un error al insertar las lineas de impresion +com.lazyloading.mensajes.excepcion.errorrollbackconexionbd = ERROR: Ocurrio un error al realizar el rollback de los cambios implementados en la base de datos +com.lazyloading.mensajes.excepcion.errorinicializarcontexto = ERROR: Ocurrio un error al inicializar el contexto relacionado con el pool de conexiones a la base de datos +com.lazyloading.mensajes.excepcion.erroradicionarejecucion = ERROR: Ocurrio un error al adicionar la ejecucion en la base de datos +com.lazyloading.mensajes.excepcion.errornumeroidentificacionejecucion = ERROR: El numero de identificacion apunta a un valor null +com.lazyloading.mensajes.excepcion.errorvalidarfechaejecucion = ERROR: La fecha de ejecucion tiene un valor invalido (apunta a un valor null o esta vacia) +com.lazyloading.mensajes.excepcion.errorvalidarlineasimpresion = ERROR: La lista de lineas de impresion es invalida (null o vacia) +com.lazyloading.mensajes.excepcion.datosejecucionvacio = ERROR: Los datos relativos a la ejecucion se encuentran vacios From d6ebca41ff8449ea63a9a2e588043bb2c49d3aab Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Sun, 17 Sep 2017 22:47:28 -0500 Subject: [PATCH 18/21] MySQL messages file --- .../configuracion/{db/mysql => mensaje}/mensajes_es_CO.properties | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/{db/mysql => mensaje}/mensajes_es_CO.properties (100%) diff --git a/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mensajes_es_CO.properties b/LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/mensaje/mensajes_es_CO.properties similarity index 100% rename from LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/db/mysql/mensajes_es_CO.properties rename to LazyLoadingMicserviceProjectBD/src/main/resources/com/lazyloading/configuracion/mensaje/mensajes_es_CO.properties From 3fec1e557112f76c8a7ed9c9e9327d83fb27aa1e Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Tue, 19 Sep 2017 22:59:08 -0500 Subject: [PATCH 19/21] Constants file configuration A file to keep some runtime execution system properties. --- .../configuracion/ConstanteConfiguracion.java | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java diff --git a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java new file mode 100644 index 0000000..2929b09 --- /dev/null +++ b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/configuracion/ConstanteConfiguracion.java @@ -0,0 +1,23 @@ +package com.lazyloading.configuracion; + +public enum ConstanteConfiguracion { + + CODIGO_RESULTADO_EXITO("com.lazyloading.configuracion.codigoresultadoexitoso"), + CODIGO_RESULTADO_ERROR("com.lazyloading.configuracion.codigoresultadoerror"), + MENSAJE_EJECUCION_EXITO("com.lazyloading.configuracion.mensajeejecucionexito"), + MENSAJE_EJECUCION_ERROR("com.lazyloading.configuracion.mensajeejecucionerror"), + NOMBRE_RESOURCE_BUNDLE_CONFIGURACION("com.lazyloading.configuracion.configuracion"); + + private String key; + + private ConstanteConfiguracion(String key) { + this.key = key; + } + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + +} From c862c87cb9d76e3b6afba6e4ace298ff9b873ec2 Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Tue, 19 Sep 2017 23:00:52 -0500 Subject: [PATCH 20/21] Constants file for system messages --- .../constante/ConstanteMensajes.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java index 88585ad..94a814a 100644 --- a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java +++ b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/constante/ConstanteMensajes.java @@ -2,19 +2,17 @@ public enum ConstanteMensajes { - OBTENER_INTEGER("com.lazyloading.mensajes.excepcion.obtenerinteger"), - VERIFICAR_DIAS_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarDiasElementos"), - VERIFICAR_ARRAY_DIAS_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarArrayDiasElementos"), - VERIFICAR_VECES_UNO("com.lazyloading.mensajes.excepcion.verificarVecesUno"), - VERIFICAR_VECES_DOS("com.lazyloading.mensajes.excepcion.verificarVecesDos"), - VERIFICAR_CONTADOR_ARR_DIAS_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarContadorArrDiasElementos"), - VERIFICAR_LISTA_ELEMENTOS_NULL("com.lazyloading.mensajes.excepcion.verificarListaElementosNull"), - VERIFICAR_LISTA_ELEMENTOS_VACIA("com.lazyloading.mensajes.excepcion.verificarListaVacia"), - VERIFICAR_ATRAS_LISTA_ELEMENTOS("com.lazyloading.mensajes.excepcion.verificarAtrasListaElementos"), - OBTENER_LINEA_IMPRESION("com.lazyloading.mensajes.excepcion.lineaimpresion"), - LISTA_JSON_NULL("com.lazyloading.mensajes.excepcion.listajsonnull"), - CLASE_ELEMENTO_JSON_NULL("com.lazyloading.mensajes.excepcion.claseelementojsonnull"), - ADAPTADOR_JSON_NULL("com.lazyloading.mensajes.excepcion.adaptadorjsonnull"); + DATOS_EJECUCION_NULL("com.lazyloading.mensajes.excepcion.datosejecucionnull"), + ERROR_INSERTAR_EJECUCION("com.lazyloading.mensajes.excepcion.errorinsertarejecucion"), + ERROR_INSERTAR_LINEAS_IMPRESION("com.lazyloading.mensajes.excepcion.errorinsertarlineasimpresion"), + ERROR_ADICIONAR_EJECUCION("com.lazyloading.mensajes.excepcion.erroradicionarejecucion"), + ERROR_INICIALIZAR_CONTEXTO("com.lazyloading.mensajes.excepcion.errorinicializarcontexto"), + ERROR_NUMERO_IDENTIFACION_EJECUCION("com.lazyloading.mensajes.excepcion.errornumeroidentificacionejecucion"), + ERROR_VALIDAR_FECHA_EJECUCION("com.lazyloading.mensajes.excepcion.errorvalidarfechaejecucion"), + ERROR_VALIDAR_LINEAS_IMPRESION("com.lazyloading.mensajes.excepcion.errorvalidarlineasimpresion"), + ERROR_PROCESAR_FECHA("com.lazyloading.mensajes.excepcion.errorprocesarfecha"), + ERROR_ROLLBACK_CONEXION_BD("com.lazyloading.mensajes.excepcion.errorrollbackconexionbd"), + DATOS_EJECUCION_VACIO("com.lazyloading.mensajes.excepcion.datosejecucionvacio"); private String key; From bc48200b814c198c253636909e20a04ddff64eef Mon Sep 17 00:00:00 2001 From: "J. David Saldarriaga" Date: Tue, 19 Sep 2017 23:03:37 -0500 Subject: [PATCH 21/21] Controller with business logic --- .../controlador/ControladorEjecucion.java | 105 ++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java diff --git a/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java new file mode 100644 index 0000000..607f51a --- /dev/null +++ b/LazyLoadingMicserviceProject/src/main/java/com/lazyloading/controlador/ControladorEjecucion.java @@ -0,0 +1,105 @@ +package com.lazyloading.controlador; + +import com.lazyloading.configuracion.ConstanteConfiguracion; +import com.lazyloading.constante.ConstanteMensajes; +import com.lazyloading.dao.interfaz.EjecucionDAO; +import com.lazyloading.db.factoria.FactoriaEjecucionDAO; +import com.lazyloading.dto.RespuestaDTO; +import com.lazyloading.excepcion.ExcepcionControladorEjecucion; +import com.lazyloading.mensaje.UtilidadMensajes; +import com.lazyloading.modelo.Ejecucion; + +public class ControladorEjecucion implements IControladorEjecucion { + + @Override + public RespuestaDTO registrarEjecucion(String datosEjecucion) { + RespuestaDTO resultadoDTO = this.procesarResultadoExito(); + try { + this.validarDatosEjecucionNull(datosEjecucion); + this.validarDatosEjecucionVacio(datosEjecucion); + Ejecucion ejecucion = new Ejecucion(datosEjecucion); + this.validarEjecucion(ejecucion); + EjecucionDAO ejecucionDAO = FactoriaEjecucionDAO.getFactoriaEjecucionDAO().getEjecucionDAO(); + ejecucionDAO.adicionarEjecucion(ejecucion); + } catch (Exception ex) { + ex.printStackTrace(); + resultadoDTO = this.procesarResultadoError(); + } + return resultadoDTO; + } + + private RespuestaDTO procesarResultadoError() { + String resourceBundleConfiguracion = ConstanteConfiguracion.NOMBRE_RESOURCE_BUNDLE_CONFIGURACION.getKey(); + String codigoResultado = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.CODIGO_RESULTADO_ERROR.getKey()); + String mensajeError = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.MENSAJE_EJECUCION_ERROR.getKey()); + RespuestaDTO respuestaDTO = this.procesarResultado(codigoResultado, mensajeError); + return respuestaDTO; + } + + private RespuestaDTO procesarResultadoExito() { + String resourceBundleConfiguracion = ConstanteConfiguracion.NOMBRE_RESOURCE_BUNDLE_CONFIGURACION.getKey(); + String codigoResultado = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.CODIGO_RESULTADO_EXITO.getKey()); + String mensajeExito = UtilidadMensajes.buscarMensaje( + resourceBundleConfiguracion, + ConstanteConfiguracion.MENSAJE_EJECUCION_EXITO.getKey()); + RespuestaDTO respuestaDTO = this.procesarResultado(codigoResultado, mensajeExito); + return respuestaDTO; + } + + private RespuestaDTO procesarResultado(String codigoResultado, String mensajeResultado) { + RespuestaDTO respuestaDTO = new RespuestaDTO(codigoResultado, mensajeResultado); + return respuestaDTO; + } + + private void validarEjecucion(Ejecucion ejecucion) { + this.validarNumeroIdentificacionEjecucion(ejecucion); + this.validarFechaEjecucion(ejecucion); + this.validarLineasImpresion(ejecucion); + } + + private void validarNumeroIdentificacionEjecucion(Ejecucion ejecucion) { + if(ejecucion.getNumeroIdentificacion() == null) { + String mensajeExcepcion = UtilidadMensajes.buscarMensaje(ConstanteMensajes.ERROR_NUMERO_IDENTIFACION_EJECUCION.getKey()); + throw new ExcepcionControladorEjecucion(mensajeExcepcion); + } + } + + private void validarFechaEjecucion(Ejecucion ejecucion) { + if(ejecucion.getFecha() == null + || ejecucion.getFecha().toString().length() == 0) { + String mensajeExcepcion = UtilidadMensajes.buscarMensaje(ConstanteMensajes.ERROR_VALIDAR_FECHA_EJECUCION.getKey()); + throw new ExcepcionControladorEjecucion(mensajeExcepcion); + } + } + + private void validarLineasImpresion(Ejecucion ejecucion) { + if(ejecucion.getListaLineaImpresion() == null + || ejecucion.getListaLineaImpresion().isEmpty()) { + String mensajeExcepcion = UtilidadMensajes.buscarMensaje(ConstanteMensajes.ERROR_VALIDAR_LINEAS_IMPRESION.getKey()); + throw new ExcepcionControladorEjecucion(mensajeExcepcion); + } + } + + private void validarDatosEjecucionNull(String datosEjecucion) { + if(datosEjecucion == null) { + String mensaje = UtilidadMensajes.buscarMensaje(ConstanteMensajes.DATOS_EJECUCION_NULL.getKey()); + throw new ExcepcionControladorEjecucion(mensaje); + } else if(datosEjecucion.isEmpty()) { + String mensaje = UtilidadMensajes.buscarMensaje(ConstanteMensajes.DATOS_EJECUCION_VACIO.getKey()); + throw new ExcepcionControladorEjecucion(mensaje); + } + } + + private void validarDatosEjecucionVacio(String datosEjecucion) { + if(datosEjecucion.isEmpty()) { + String mensaje = UtilidadMensajes.buscarMensaje(ConstanteMensajes.DATOS_EJECUCION_NULL.getKey()); + throw new ExcepcionControladorEjecucion(mensaje); + } + } +}