Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stockmanager #36

Open
wants to merge 7 commits into
base: Desarrollo
Choose a base branch
from
Open
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
25 changes: 25 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# copiado del generado por github

name: Java CI with Gradle

on:
push:
branches: [ Desarrollo ]
pull_request:
branches: [ Desarrollo ]

jobs:
build:

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- name: Set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
46 changes: 23 additions & 23 deletions .project
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>shopManager</name>
<comment>Project shopManager created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>shopManager</name>
<comment>Project shopManager created by Buildship.</comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>
4 changes: 3 additions & 1 deletion README.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,6 @@ Caracter
Librer�a shopManager para facilitar el desarrollo de aplicaciones de tienda virtual
Usa gradle para controlar la construcci�n y dependencias
Usa el sistema de trazado de java
Usa hazelcast para tener datos en memoria compartida del stock y de los pedidos
Usa hazelcast para tener datos en memoria compartida del stock y de los pedidos

Esta librer�a podr� ser usadas tanto por aplicaciones cliente como servior en el proceso de venta online.
1 change: 1 addition & 0 deletions src/main/java/shopmanager/DEVELOPERS.TXT.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Guillermo Roche Arcas
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package shopManager;
package shopmanager;

import java.io.Serializable;

Expand All @@ -25,23 +25,25 @@ public class MyProduct implements Product,Serializable{
private String id;
private int number;

MyProduct(String id) {
public MyProduct(String id) {
this.id=id;
number=1;
}

MyProduct(String id,int number) {
public MyProduct(String id,int number) {
this.id=id;
this.number=number;
}
@Override
public void setId(String id) {
trazador.info("Estableciendo id a "+id);
String msg="Estableciendo id a "+id;
trazador.info(msg);
this.id=id;
}
@Override
public String getId() {
trazador.info("Devolviendo id como "+id);
public String getId() {
String msg="Devolviendo el id como "+id;
trazador.info(msg);
return this.id;
}
@Override
Expand All @@ -65,7 +67,8 @@ public int oneLess(){
} else {
trazador.info("El n�mero de unidades del producto no se puede reducir porque es cero");
}
trazador.info(this.toString());
String msg=toString();
trazador.info(msg);
return number;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package shopManager;
package shopmanager;
import com.hazelcast.core.*;
import com.hazelcast.config.*;

Expand All @@ -14,8 +14,8 @@
public class MyStockManager implements StockManager{

private static Logger trazador=Logger.getLogger(MyStockManager.class.getName());
private static StockManager my_instance;
private HazelcastInstance hz_instance;
private static StockManager myInstance;
private HazelcastInstance hzInstance;
private Config cfg;
//Mapa de productos que ser� compartido por todos los stockManager que se instancien
private IMap<String, Product> mapProducts;
Expand All @@ -25,67 +25,68 @@ public class MyStockManager implements StockManager{
private MyStockManager(){
cfg = new Config();

HazelcastInstance hz_instance = Hazelcast.newHazelcastInstance(cfg);
hzInstance = Hazelcast.newHazelcastInstance(cfg);
trazador.info("Acabo de crear una instancia hazelcast para el MyStockManager");
mapProducts = hz_instance.getMap("products");
mapProducts = hzInstance.getMap("products");
trazador.info("Se ha recuperado referencia al mapa products, si no se hab�a usado se ha creado");
}
/**
* @deprecated
* @see
* java.lang.Object
* El compilador me avisa de que uso algo "deprecated" por eso a�ado la opci�n de compilaci�n en gradle, para ver m�s detalle
*/
@Override
@Deprecated(since="0,0")
protected void finalize() throws Throwable{
trazador.info("Finalizando el MyStockManager, borra la instancia hazelcast y deja a null la instancia singleton");
hz_instance.shutdown();
my_instance=null;
hz_instance=null;

trazador.info("Finalizando el MyStockManager, apaga la instancia hazelcast");
hzInstance.shutdown();
}

public static StockManager getInstance() {
if (my_instance==null){
my_instance=new MyStockManager();
if (myInstance==null){
myInstance=new MyStockManager();
}
return my_instance;
return myInstance;
}
@Override
public void addProduct(Product newProduct) {
Product productTmp;
trazador.info("El tama�o del mapa al entrar es " + mapProducts.size());
String msg="El tama�o del mapa al entrar es " + mapProducts.size();
trazador.info(msg);
if(mapProducts.containsKey(newProduct.getId())){
productTmp=searchProduct(newProduct.getId());
newProduct.setNumber(productTmp.getNumber()+newProduct.getNumber());
}
mapProducts.put(newProduct.getId(), newProduct);
trazador.info("El mapa de tama�o " + mapProducts.size()+" incluye "+newProduct);
msg="El mapa de tama�o " + mapProducts.size()+" incluye "+newProduct;
trazador.info(msg);
}
@Override
public Product searchProduct(String id) {
Product product=null;
String msg;
if(mapProducts.containsKey(id)){
product=mapProducts.get(id);
trazador.info("Hay "+ product);
msg="Hay "+ product;
trazador.info(msg);

}else {
trazador.info("El "+product+" no est� en el mapa");
msg="El "+product+" no est� en el mapa";
trazador.info(msg);
}
return product;
}
/**
* @throws CloneNotSupportedException
* @see
* java.lang.Object
* El m�todo clone permite crear una instancia a partir de otra, lo que en una clase que siga el patr�n singleton no se puede permitir
*/
@Override
public MyStockManager clone() {
try {
throw new CloneNotSupportedException();
} catch (CloneNotSupportedException ex) {
System.out.println("No se puede clonar un objeto de la clase MyStockManager, sigue patr�n singleton");
}
return null;
public MyStockManager clone() throws CloneNotSupportedException {
trazador.warning("No se puede clonar un objeto de la clase MyStockManager, sigue patr�n singleton");
throw new CloneNotSupportedException();
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package shopManager;
package shopmanager;
/**
*
* @author Isabel Rom�n
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
/**
*
*/
package shopManager;
package shopmanager;

/**
* @author Isabel Rom�n
Expand Down
8 changes: 8 additions & 0 deletions src/main/java/shopmanager/package-info.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package shopmanager;

/**
* Este paquete contiene las clases para los productos y el gesti�n del stock
*
* @author Isabel Rom�n
* @version 0.0
*/
14 changes: 7 additions & 7 deletions src/test/java/shopManager/MyStockManagerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@

import org.junit.Test;

import shopManager.MyProduct;
import shopManager.Product;
import shopManager.StockManager;
import shopManager.MyStockManager;
import shopmanager.MyProduct;
import shopmanager.MyStockManager;
import shopmanager.Product;
import shopmanager.StockManager;


/**
Expand All @@ -24,7 +24,7 @@ public class MyStockManagerTest {
String underTestAsString;

/**
* Test method for {@link shopManager.MyStockManager#getInstance()}.
* Test method for {@link shopmanager.MyStockManager#getInstance()}.
*/
@Test
public void testGetInstance() {
Expand All @@ -36,7 +36,7 @@ public void testGetInstance() {
}

/**
* Test method for {@link shopManager.MyStockManager#addProduct(shopManager.Product)}.
* Test method for {@link shopmanager.MyStockManager#addProduct(shopmanager.Product)}.
*/
@Test
public void testAddProduct() {
Expand All @@ -48,7 +48,7 @@ public void testAddProduct() {
}

/**
* Test method for {@link shopManager.MyStockManager#searchProduct(java.lang.String)}.
* Test method for {@link shopmanager.MyStockManager#searchProduct(java.lang.String)}.
*/
@Test
public void testSearchProduct() {
Expand Down
4 changes: 2 additions & 2 deletions src/test/java/shopManager/ProductTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@

import org.junit.Test;

import shopManager.MyProduct;
import shopManager.Product;
import shopmanager.MyProduct;
import shopmanager.Product;


/**
Expand Down