diff --git a/.classpath b/.classpath
index 4505026..c531bd5 100644
--- a/.classpath
+++ b/.classpath
@@ -24,11 +24,7 @@
-
-
-
-
-
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index ac8e750..6de7763 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,16 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.processAnnotations=disabled
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/pom.xml b/pom.xml
index bd35b7c..7b51679 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,8 +1,22 @@
-
- 4.0.0
- com.antoniofrische
- perifericosAdvisor
- 0.0.1-SNAPSHOT
- PerifericosAdvisor
- una recomandacion de diferentes perifericos
+
+ 4.0.0
+ com.openwebinars
+ 19-MovieAdvisor
+ 0.0.1-SNAPSHOT
+ 19-MovieAdvisor
+ Ejemplo que integra todos los conocimientos del curso de Spring.
+
+
+ org.springframework
+ spring-context
+ 5.0.8.RELEASE
+
+
+
+ 1.8
+ 1.8
+
+
\ No newline at end of file
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/config/AppConfig.java b/src/main/java/com/antoniofrische/perifericosAdvisor/config/AppConfig.java
new file mode 100644
index 0000000..65f389a
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/config/AppConfig.java
@@ -0,0 +1,36 @@
+package com.antoniofrische.perifericosAdvisor.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.PropertySource;
+
+
+
+@Configuration
+@ComponentScan(basePackages="com.antoniofrische.perifericosAdvisor")
+@PropertySource("classpath:/movieadvisor.properties")
+public class AppConfig {
+
+ @Value("${file.path}")
+ public String file;
+
+ @Value("${file.csv.separator}")
+ public String separator;
+
+ @Value("${file.csv.list_separator}")
+ public String listSeparator;
+
+ public String getFile() {
+ return file;
+ }
+
+ public String getSeparator() {
+ return separator;
+ }
+
+ public String getListSeparator() {
+ return listSeparator;
+ }
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/dao/PerifericoDao.java b/src/main/java/com/antoniofrische/perifericosAdvisor/dao/PerifericoDao.java
new file mode 100644
index 0000000..44b8781
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/dao/PerifericoDao.java
@@ -0,0 +1,15 @@
+package com.antoniofrische.perifericosAdvisor.dao;
+
+import java.util.Collection;
+
+import com.antoniofrische.perifericosAdvisor.model.Periferico;
+
+public interface PerifericoDao {
+
+ public Periferico findById(long id);
+ public Collection findAll();
+ public void insert(Periferico periferico);
+ public void edit(Periferico periferico);
+ public void delete(long id);
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/dao/PerifericoDaoImplMemory.java b/src/main/java/com/antoniofrische/perifericosAdvisor/dao/PerifericoDaoImplMemory.java
new file mode 100644
index 0000000..dc5dabc
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/dao/PerifericoDaoImplMemory.java
@@ -0,0 +1,75 @@
+package com.antoniofrische.perifericosAdvisor.dao;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.Optional;
+
+import javax.annotation.PostConstruct;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Repository;
+
+import com.antoniofrische.perifericosAdvisor.config.AppConfig;
+import com.antoniofrische.perifericosAdvisor.model.Periferico;
+
+@Repository
+public class PerifericoDaoImplMemory implements PerifericoDao {
+
+ public List perifericos = new ArrayList();
+
+ @Autowired
+ private AppConfig appConfig;
+
+ @PostConstruct
+ public void init() {
+ perifericos = UtilPerifericoFileReader.readFile(appConfig.getFile(), appConfig.getSeparator(), appConfig.getListSeparator());
+ }
+
+ public Periferico findById(long id) {
+
+ Optional result = perifericos
+ .stream()
+ .filter(f -> f.getId() == id)
+ .findFirst();
+ return result.orElse(null);
+
+
+ }
+
+ public Collection findAll() {
+ return perifericos;
+ }
+
+ public void insert(Periferico periferico) {
+ perifericos.add(periferico);
+ }
+
+ public void edit(Periferico periferico) {
+ int index = getIndexOf(periferico.getId());
+ if (index != -1)
+ perifericos.set(index, periferico);
+ }
+
+ public void delete(long id) {
+ int index = getIndexOf(id);
+ if (index != -1)
+ perifericos.remove(index);
+
+ }
+
+ private int getIndexOf(long id) {
+ boolean encontrado = false;
+ int index = 0;
+
+ while (!encontrado && index < perifericos.size()) {
+ if (perifericos.get(index).getId() == id)
+ encontrado = true;
+ else
+ index++;
+ }
+
+ return (encontrado) ? index : -1;
+ }
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/dao/UtilPerifericoFileReader.java b/src/main/java/com/antoniofrische/perifericosAdvisor/dao/UtilPerifericoFileReader.java
new file mode 100644
index 0000000..baf4355
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/dao/UtilPerifericoFileReader.java
@@ -0,0 +1,40 @@
+package com.antoniofrische.perifericosAdvisor.dao;
+
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import org.springframework.util.ResourceUtils;
+
+import com.antoniofrische.perifericosAdvisor.model.Periferico;
+
+
+public class UtilPerifericoFileReader {
+
+ public static List readFile(final String path, final String separator, final String listSeparator) {
+
+ List result = new ArrayList<>();
+
+
+ try {
+
+ result = Files
+ .lines(Paths.get(ResourceUtils.getFile(path).toURI()))
+ .skip(1)
+ .map(line -> {
+ String[] values = line.split(separator);
+ return new Perifericos(Long.parseLong(values[0]), values[1], values[2],values[3],values[4],values[5],Boolean.parseBoolean(values[6]));
+ }).collect(Collectors.toList());
+ } catch (Exception e) {
+ System.err.println("Error de lectura del fichero de datos: imdb_data");
+ System.exit(-1);
+ }
+
+ return result;
+
+ }
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/model/Periferico.java b/src/main/java/com/antoniofrische/perifericosAdvisor/model/Periferico.java
new file mode 100644
index 0000000..7a2c721
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/model/Periferico.java
@@ -0,0 +1,113 @@
+package com.antoniofrische.perifericosAdvisor.model;
+
+public class Periferico {
+ private int id;
+ private String marca;
+ private String nombre;
+ private String descripcion;
+ private String tipo;
+ private String color;
+ private boolean ifcable;
+
+ public Periferico(int id, String marca, String nombre, String descripcion, String tipo, String color,boolean ifcable) {
+ this.id = id;
+ this.marca = marca;
+ this.nombre = nombre;
+ this.descripcion = descripcion;
+ this.tipo = tipo;
+ this.color = color;
+ this.ifcable = ifcable;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getMarca() {
+ return marca;
+ }
+
+ public String getNombre() {
+ return nombre;
+ }
+
+ public String getDescripcion() {
+ return descripcion;
+ }
+
+ public String getTipo() {
+ return tipo;
+ }
+
+ public String getColor() {
+ return color;
+ }
+
+ public boolean isIfcable() {
+ return ifcable;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((color == null) ? 0 : color.hashCode());
+ result = prime * result + ((descripcion == null) ? 0 : descripcion.hashCode());
+ result = prime * result + id;
+ result = prime * result + (ifcable ? 1231 : 1237);
+ result = prime * result + ((marca == null) ? 0 : marca.hashCode());
+ result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
+ result = prime * result + ((tipo == null) ? 0 : tipo.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ Periferico other = (Periferico) obj;
+ if (color == null) {
+ if (other.color != null)
+ return false;
+ } else if (!color.equals(other.color))
+ return false;
+ if (descripcion == null) {
+ if (other.descripcion != null)
+ return false;
+ } else if (!descripcion.equals(other.descripcion))
+ return false;
+ if (id != other.id)
+ return false;
+ if (ifcable != other.ifcable)
+ return false;
+ if (marca == null) {
+ if (other.marca != null)
+ return false;
+ } else if (!marca.equals(other.marca))
+ return false;
+ if (nombre == null) {
+ if (other.nombre != null)
+ return false;
+ } else if (!nombre.equals(other.nombre))
+ return false;
+ if (tipo == null) {
+ if (other.tipo != null)
+ return false;
+ } else if (!tipo.equals(other.tipo))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "perifericos [id=" + id + ", marca=" + marca + ", nombre=" + nombre + ", descripcion=" + descripcion
+ + ", tipo=" + tipo + ", color=" + color + ", ifcable=" + ifcable + "]";
+ }
+
+
+
+}
diff --git a/src/main/resources/ayuda.txt b/src/main/resources/ayuda.txt
new file mode 100644
index 0000000..9dbef7f
--- /dev/null
+++ b/src/main/resources/ayuda.txt
@@ -0,0 +1,52 @@
+Sintaxis: java -jar movieadvisor.jar [OPCIONES]
+
+ -lg
+ Lista los diferentes géneros de películas de la colección.
+ No se pueden utilizar más parámetros.
+
+ -ag genero1,genero2,genero...
+ Lista aquellas películas que pertenecen a al menos uno de los géneros
+ que se indican. El listado de géneros no puede incluir espacios.
+
+ -tg genero1,genero2,genero...
+ Lista aquellas películas que pertenecen a todos y cada uno de los
+ géneros que se indican. El listado de géneros no puede incluir espacios.
+
+ -y año
+ Lista aquellas películas que se estrenaron en el año indicado.
+ El año debe expresarse con 4 cifras.
+
+ -b desde,hasta
+ Lista aquellas películas que se estrenaron entre los años DESDE y HASTA.
+ Los años indicados están incluidos. Deben expresarse con 4 cifras.
+
+ -t titulo
+ Lista aquellas películas cuyo título contiene la cadena proporcionada.
+ Se ignorará el uso de mayúsculas/minúsculas en la comparación.
+
+ -h
+ Muestra este mensaje de ayuda.
+
+EJEMPLOS DE USO
+
+java -jar movieadvisor.jar -y 2018 -ag Action,Comedy
+Muestra las películas estrenadas de 2018 de acción y/o de comedia.
+
+java -jar movieadvisor.jar -t heart
+Muestra las películas cuyo título contiene la palabra heart.
+
+java -jar movieadvisor.jar -td Action,Sci-Fi -b 1990,2010 -t star
+Muestra las películas cuyo título contiene la palabra star, pertenecen al
+género de acción y ciencia ficción y fueron estrenadas entre 1990 y 2010.
+
+java -jar movieadvisor.jar -lg
+Muestra un listado con todos los géneros.
+
+
+LICENCIAS
+
+Los datos utilizados sobre películas utilizados en este ejemplo son
+reales y están sacados del sitio web www.imdb.com. Ten en cuenta
+que solo puede ser usada con fines personales y no comerciales.
+
+
\ No newline at end of file
diff --git a/src/main/resources/imdb_data.csv b/src/main/resources/imdb_data.csv
new file mode 100644
index 0000000..cff3b6c
--- /dev/null
+++ b/src/main/resources/imdb_data.csv
@@ -0,0 +1,16 @@
+id;marca;nombre;descripcion;tipo;color;cable
+30;Razer;Pro gamingX;Raton de alta calidad;raton,negro y blanco;true
+32;Roccat;Kone Aimo;Raton con alta DPI;raton,Blanco;true
+33;Logitech;G930;Volante para videojuegos;Volante,negro y azul;true
+40;HyperX;gamingTX;Altavozes para juagar;altavozes,negro y gris;true
+12;Razer;Fly pro gaming;Raton mas ligero del mercado;raton,Rojo;false
+23;HyperX;Pro XDR 2;Pantalla con colores reales;Pantalla,negro;true
+51;MarsGaming;Alfombria MG18;alfombria para la mejor presicion en los jeugos;Alfombria,rojo y blanco;false
+46;Roccat;Khan aimo;cascos confortables para horas de juego;Cascos,negro;true
+90;HyperX;Hiper gaming H15;Teclado para quien quiere montar se lo mismo;teclado,rojo;true
+37;HyperX;Alloy Core RGB;Teclado a mejor precio;teclado,negro y verde;true
+18;Razer;titanium GPU;Suporte para aguantar tajetas graficas;suporte,negro metallico;true
+02;Logitech;G815 lightspeed;Teclado de alta calidad con bluetooth;teclado,blanco;false
+11;MarsGaming;MG318 bulletproof;cascos speciales para ambientes ruidosos;cascos,blanco;true
+66;Razer;Enki;silla confortable para gaming;silla,negro y gris;false
+91;Logitech;lightspeed pro 10;Raton inalambrico para llevar;raton,gris;false
diff --git a/src/main/resources/perifericoadvisor.properties b/src/main/resources/perifericoadvisor.properties
new file mode 100644
index 0000000..99a01f1
--- /dev/null
+++ b/src/main/resources/perifericoadvisor.properties
@@ -0,0 +1,3 @@
+file.path=classpath:imdb_data.csv
+file.csv.separator=;
+file.csv.list_separator=,
\ No newline at end of file
diff --git a/target/classes/META-INF/maven/com.antoniofrische/perifericosAdvisor/pom.xml b/target/classes/META-INF/maven/com.antoniofrische/perifericosAdvisor/pom.xml
deleted file mode 100644
index bd35b7c..0000000
--- a/target/classes/META-INF/maven/com.antoniofrische/perifericosAdvisor/pom.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
- 4.0.0
- com.antoniofrische
- perifericosAdvisor
- 0.0.1-SNAPSHOT
- PerifericosAdvisor
- una recomandacion de diferentes perifericos
-
\ No newline at end of file
diff --git a/target/classes/META-INF/maven/com.antoniofrische/perifericosAdvisor/pom.properties b/target/classes/META-INF/maven/com.openwebinars/19-MovieAdvisor/pom.properties
similarity index 75%
rename from target/classes/META-INF/maven/com.antoniofrische/perifericosAdvisor/pom.properties
rename to target/classes/META-INF/maven/com.openwebinars/19-MovieAdvisor/pom.properties
index 1a6e830..fc391a9 100644
--- a/target/classes/META-INF/maven/com.antoniofrische/perifericosAdvisor/pom.properties
+++ b/target/classes/META-INF/maven/com.openwebinars/19-MovieAdvisor/pom.properties
@@ -1,7 +1,7 @@
#Generated by Maven Integration for Eclipse
-#Sat Nov 26 10:36:42 CET 2022
+#Sat Nov 26 11:46:12 CET 2022
m2e.projectLocation=C\:\\Users\\AntonioFrische\\OneDrive - ABACCO Solutions\\Documents\\Schule_22_23_CFGS\\Acceso_Datos\\SpringTool_4\\SpringWorkspace\\perifericosAdvisor
m2e.projectName=perifericosAdvisor
-groupId=com.antoniofrische
-artifactId=perifericosAdvisor
+groupId=com.openwebinars
+artifactId=19-MovieAdvisor
version=0.0.1-SNAPSHOT
diff --git a/target/classes/META-INF/maven/com.openwebinars/19-MovieAdvisor/pom.xml b/target/classes/META-INF/maven/com.openwebinars/19-MovieAdvisor/pom.xml
new file mode 100644
index 0000000..7b51679
--- /dev/null
+++ b/target/classes/META-INF/maven/com.openwebinars/19-MovieAdvisor/pom.xml
@@ -0,0 +1,22 @@
+
+ 4.0.0
+ com.openwebinars
+ 19-MovieAdvisor
+ 0.0.1-SNAPSHOT
+ 19-MovieAdvisor
+ Ejemplo que integra todos los conocimientos del curso de Spring.
+
+
+ org.springframework
+ spring-context
+ 5.0.8.RELEASE
+
+
+
+ 1.8
+ 1.8
+
+
+
\ No newline at end of file
diff --git a/target/classes/ayuda.txt b/target/classes/ayuda.txt
new file mode 100644
index 0000000..9dbef7f
--- /dev/null
+++ b/target/classes/ayuda.txt
@@ -0,0 +1,52 @@
+Sintaxis: java -jar movieadvisor.jar [OPCIONES]
+
+ -lg
+ Lista los diferentes géneros de películas de la colección.
+ No se pueden utilizar más parámetros.
+
+ -ag genero1,genero2,genero...
+ Lista aquellas películas que pertenecen a al menos uno de los géneros
+ que se indican. El listado de géneros no puede incluir espacios.
+
+ -tg genero1,genero2,genero...
+ Lista aquellas películas que pertenecen a todos y cada uno de los
+ géneros que se indican. El listado de géneros no puede incluir espacios.
+
+ -y año
+ Lista aquellas películas que se estrenaron en el año indicado.
+ El año debe expresarse con 4 cifras.
+
+ -b desde,hasta
+ Lista aquellas películas que se estrenaron entre los años DESDE y HASTA.
+ Los años indicados están incluidos. Deben expresarse con 4 cifras.
+
+ -t titulo
+ Lista aquellas películas cuyo título contiene la cadena proporcionada.
+ Se ignorará el uso de mayúsculas/minúsculas en la comparación.
+
+ -h
+ Muestra este mensaje de ayuda.
+
+EJEMPLOS DE USO
+
+java -jar movieadvisor.jar -y 2018 -ag Action,Comedy
+Muestra las películas estrenadas de 2018 de acción y/o de comedia.
+
+java -jar movieadvisor.jar -t heart
+Muestra las películas cuyo título contiene la palabra heart.
+
+java -jar movieadvisor.jar -td Action,Sci-Fi -b 1990,2010 -t star
+Muestra las películas cuyo título contiene la palabra star, pertenecen al
+género de acción y ciencia ficción y fueron estrenadas entre 1990 y 2010.
+
+java -jar movieadvisor.jar -lg
+Muestra un listado con todos los géneros.
+
+
+LICENCIAS
+
+Los datos utilizados sobre películas utilizados en este ejemplo son
+reales y están sacados del sitio web www.imdb.com. Ten en cuenta
+que solo puede ser usada con fines personales y no comerciales.
+
+
\ No newline at end of file
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/config/AppConfig.class b/target/classes/com/antoniofrische/perifericosAdvisor/config/AppConfig.class
new file mode 100644
index 0000000..05fe655
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/config/AppConfig.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/dao/PerifericoDao.class b/target/classes/com/antoniofrische/perifericosAdvisor/dao/PerifericoDao.class
new file mode 100644
index 0000000..06e0129
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/dao/PerifericoDao.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/dao/PerifericoDaoImplMemory.class b/target/classes/com/antoniofrische/perifericosAdvisor/dao/PerifericoDaoImplMemory.class
new file mode 100644
index 0000000..b1f937c
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/dao/PerifericoDaoImplMemory.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/dao/UtilPerifericoFileReader.class b/target/classes/com/antoniofrische/perifericosAdvisor/dao/UtilPerifericoFileReader.class
new file mode 100644
index 0000000..c142174
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/dao/UtilPerifericoFileReader.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/model/Periferico.class b/target/classes/com/antoniofrische/perifericosAdvisor/model/Periferico.class
new file mode 100644
index 0000000..2a9552b
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/model/Periferico.class differ
diff --git a/target/classes/imdb_data.csv b/target/classes/imdb_data.csv
new file mode 100644
index 0000000..cff3b6c
--- /dev/null
+++ b/target/classes/imdb_data.csv
@@ -0,0 +1,16 @@
+id;marca;nombre;descripcion;tipo;color;cable
+30;Razer;Pro gamingX;Raton de alta calidad;raton,negro y blanco;true
+32;Roccat;Kone Aimo;Raton con alta DPI;raton,Blanco;true
+33;Logitech;G930;Volante para videojuegos;Volante,negro y azul;true
+40;HyperX;gamingTX;Altavozes para juagar;altavozes,negro y gris;true
+12;Razer;Fly pro gaming;Raton mas ligero del mercado;raton,Rojo;false
+23;HyperX;Pro XDR 2;Pantalla con colores reales;Pantalla,negro;true
+51;MarsGaming;Alfombria MG18;alfombria para la mejor presicion en los jeugos;Alfombria,rojo y blanco;false
+46;Roccat;Khan aimo;cascos confortables para horas de juego;Cascos,negro;true
+90;HyperX;Hiper gaming H15;Teclado para quien quiere montar se lo mismo;teclado,rojo;true
+37;HyperX;Alloy Core RGB;Teclado a mejor precio;teclado,negro y verde;true
+18;Razer;titanium GPU;Suporte para aguantar tajetas graficas;suporte,negro metallico;true
+02;Logitech;G815 lightspeed;Teclado de alta calidad con bluetooth;teclado,blanco;false
+11;MarsGaming;MG318 bulletproof;cascos speciales para ambientes ruidosos;cascos,blanco;true
+66;Razer;Enki;silla confortable para gaming;silla,negro y gris;false
+91;Logitech;lightspeed pro 10;Raton inalambrico para llevar;raton,gris;false
diff --git a/target/classes/perifericoadvisor.properties b/target/classes/perifericoadvisor.properties
new file mode 100644
index 0000000..99a01f1
--- /dev/null
+++ b/target/classes/perifericoadvisor.properties
@@ -0,0 +1,3 @@
+file.path=classpath:imdb_data.csv
+file.csv.separator=;
+file.csv.list_separator=,
\ No newline at end of file