Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## 👥 Team Members

- **Jesús Alfonso Pinzón Vega** - [GitHub Profile](https://github.com/JAPV-X2612)
- **David Felipe Velásquez Contreras** - [GitHub Profile](https://github.com/DavidVCAI)
- [Jesús Alfonso Pinzón Vega](https://github.com/JAPV-X2612)
- [David Felipe Velásquez Contreras](https://github.com/DavidVCAI)

---

Expand All @@ -29,7 +29,7 @@ This laboratory focuses on **component-based architecture**, **dependency inject
### 🔧 **Java & Maven Configuration**

**System Requirements:**
- Java 11 or higher
- Java 8 or higher
- Maven 3.6+
- Spring Boot 3.3.3

Expand Down Expand Up @@ -69,13 +69,13 @@ The system follows a **layered architecture** with clear separation of concerns:
└─────────────────┬───────────────┘
│ @Autowired
┌─────────────────▼───────────────┐
BlueprintsPersistence
(Interface)
BlueprintsPersistence
(Interface)
└─────────────────┬───────────────┘
┌─────────────────▼───────────────┐
InMemoryBlueprintPersistence
│ (@Component)
InMemoryBlueprintPersistence
(@Component) │
│ - saveBlueprint() │
│ - getBlueprint() │
│ - getBlueprintsByAuthor() │
Expand Down
34 changes: 17 additions & 17 deletions STATEMENT.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
## Escuela Colombiana de Ingeniería
# Escuela Colombiana de Ingeniería

## Arquitecturas de Software
## Arquitecturas de Software (ARSW)

# Componentes y conectores - Parte I.
## Componentes y Conectores - Parte I

El ejercicio se debe traer terminado para el siguiente laboratorio (Parte II).

#### Middleware- gestión de planos.
### Middleware - Gestión de Planos


## Antes de hacer este ejercicio, realice [el ejercicio introductorio al manejo de Spring y la configuración basada en anotaciones](https://github.com/ARSW-ECI/Spring_LightweightCont_Annotation-DI_Example).
Antes de hacer este ejercicio, realice el [ejercicio introductorio al manejo de Spring y la configuración basada en anotaciones](https://github.com/ARSW-ECI/Spring_LightweightCont_Annotation-DI_Example).

En este ejercicio se va a construír un modelo de clases para la capa lógica de una aplicación que permita gestionar planos arquitectónicos de una prestigiosa compañia de diseño.

![](assets/images/ClassDiagram1.png)
<img src="assets/images/class_diagram_1.png" alt="Class Diagram" width="70%">

1. Configure la aplicación para que funcione bajo un esquema de inyección de dependencias, tal como se muestra en el diagrama anterior.

```txt
Lo anterior requiere:

Lo anterior requiere:

* Agregar las dependencias de Spring.
* Agregar la configuración de Spring.
* Configurar la aplicación -mediante anotaciones- para que el esquema de persistencia sea inyectado al momento de ser creado el bean 'BlueprintServices'.

* Agregar las dependencias de Spring
* Agregar la configuración de Spring
* Configurar la aplicación mediante anotaciones para que el esquema de persistencia sea inyectado al momento de ser creado el bean 'BlueprintServices'
```

2. Complete los operaciones getBluePrint() y getBlueprintsByAuthor(). Implemente todo lo requerido de las capas inferiores (por ahora, el esquema de persistencia disponible 'InMemoryBlueprintPersistence') agregando las pruebas correspondientes en 'InMemoryPersistenceTest'.

3. Haga un programa en el que cree (mediante Spring) una instancia de BlueprintServices, y rectifique la funcionalidad del mismo: registrar planos, consultar planos, registrar planos específicos, etc.

4. Se quiere que las operaciones de consulta de planos realicen un proceso de filtrado, antes de retornar los planos consultados. Dichos filtros lo que buscan es reducir el tamaño de los planos, removiendo datos redundantes o simplemente submuestrando, antes de retornarlos. Ajuste la aplicación (agregando las abstracciones e implementaciones que considere) para que a la clase BlueprintServices se le inyecte uno de dos posibles 'filtros' (o eventuales futuros filtros). No se contempla el uso de más de uno a la vez:
* (A) Filtrado de redundancias: suprime del plano los puntos consecutivos que sean repetidos.
* (B) Filtrado de submuestreo: suprime 1 de cada 2 puntos del plano, de manera intercalada.
4. Se quiere que las operaciones de consulta de planos realicen un proceso de filtrado, antes de retornar los planos consultados. Dichos filtros lo que buscan es reducir el tamaño de los planos, removiendo datos redundantes o simplemente submuestrando antes de retornarlos. Ajuste la aplicación (agregando las abstracciones e implementaciones que considere) para que a la clase BlueprintServices se le inyecte uno de dos posibles 'filtros' (o eventuales futuros filtros). No se contempla el uso de más de uno a la vez:

* **(A) Filtrado de redundancias:** Suprime del plano los puntos consecutivos que sean repetidos
* **(B) Filtrado de submuestreo:** Suprime 1 de cada 2 puntos del plano, de manera intercalada

5. Agrege las pruebas correspondientes a cada uno de estos filtros, y pruebe su funcionamiento en el programa de prueba, comprobando que sólo cambiando la posición de las anotaciones -sin cambiar nada más-, el programa retorne los planos filtrados de la manera (A) o de la manera (B).
5. Agrege las pruebas correspondientes a cada uno de estos filtros y pruebe su funcionamiento en el programa de prueba, comprobando que sólo cambiando la posición de las anotaciones (sin cambiar nada más) y el programa retorne los planos filtrados de la manera (A) o de la manera (B).
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes
2 changes: 1 addition & 1 deletion mvnw.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,4 @@ if "%MAVEN_BATCH_PAUSE%" == "on" pause

if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%

exit /B %ERROR_CODE%
exit /B %ERROR_CODE%
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<spring-cloud.version>2021.0.8</spring-cloud.version>
<java.version>17</java.version>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<spring-cloud.version>2023.0.1</spring-cloud.version>
</properties>

<dependencies>
Expand Down
10 changes: 2 additions & 8 deletions src/main/java/edu/eci/arsw/blueprints/model/Blueprint.java
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

package edu.eci.arsw.blueprints.model;

import java.util.ArrayList;
Expand All @@ -10,15 +9,13 @@
public class Blueprint {

private String author=null;

private List<Point> points=null;

private String name=null;

public Blueprint(String author,String name,Point[] pnts){
public Blueprint(String author, String name, Point[] points){
this.author=author;
this.name=name;
points=Arrays.asList(pnts);
points=Arrays.asList(points);
}

public Blueprint(String author, String name){
Expand Down Expand Up @@ -85,7 +82,4 @@ public boolean equals(Object obj) {

return true;
}



}
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.eci.arsw.blueprints.persistence;

/**
Expand All @@ -18,5 +13,4 @@ public BlueprintNotFoundException(String message) {
public BlueprintNotFoundException(String message, Throwable cause) {
super(message, cause);
}

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.eci.arsw.blueprints.persistence;

/**
Expand All @@ -18,5 +13,4 @@ public BlueprintPersistenceException(String message) {
public BlueprintPersistenceException(String message, Throwable cause) {
super(message, cause);
}

}
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.eci.arsw.blueprints.persistence;

import edu.eci.arsw.blueprints.model.Blueprint;
Expand All @@ -17,10 +12,7 @@ public interface BlueprintsPersistence {
/**
*
* @param bp the new blueprint
* @throws BlueprintPersistenceException if a blueprint with the same name
* already exists,
* or any other low-level persistence
* error occurs.
* @throws BlueprintPersistenceException if a blueprint with the same name already exists, or any other low-level persistence error occurs.
*/
public void saveBlueprint(Blueprint bp) throws BlueprintPersistenceException;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,4 @@ public boolean equals(Object obj) {
}
return true;
}


}
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.eci.arsw.blueprints.services;

import edu.eci.arsw.blueprints.model.Blueprint;
Expand All @@ -26,8 +21,7 @@ public class BlueprintsServices {
@Autowired
BlueprintsPersistence bpp = null;

// Setter para simulación manual de inyección de dependencias (para pruebas sin
// Spring)
// Setter para simulación manual de inyección de dependencias (para pruebas sin Spring)
public void setBlueprintsPersistence(BlueprintsPersistence bpp) {
this.bpp = bpp;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.eci.arsw.blueprints.test.persistence.impl;

import edu.eci.arsw.blueprints.model.Blueprint;
Expand Down