Desarrollo

La propuesta solución es la siguiente se propone hacer un desarrollo multimodular de 3 modulos cliente de tipo war que son los siguientes: Estos clientes van a consumir un api rest en spring boot que consultara a la base de datos cassandra.

Api rest

Vamos a comenzar con el desarrollo back-end de nuestro sistema que va intereactuar con apache cassandra.
Abrimos nuestro IDE eclipse y creamos un proyecto maven
Procedemos a abrir nuestro IDE eclipse y nos vamos al menú y le damos File->New->Maven Project
java project
Seleccionamos Create a simple project (skip archetype selection) y Use default Workspace location y presionamos Next
java project
Ahora llenamos los siguientes datos:
y presionamos finish.
liga azteca
En el archivo pom.xml escribimos lo siguiente:
 
  
              
              
    <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.tutosoftware.ligaaztecaapi</groupId>
  <artifactId>ligaaztecaapi</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>LigaAzteca API</name>
  
  <parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-parent</artifactId>
  <version>2.5.4</version>
  <relativePath/>
<!-- lookup parent from repository -->
</parent>
  
  
  
  <properties>
		<java.version>1.8</java.version>
		<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
	</properties>

	<dependencies>
	
	  <dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-ui</artifactId>
      <version>1.5.5</version>
   </dependency>
	
	<dependency>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-groovy-dsl</artifactId>
        <version>2.1.1</version>
        <exclusions>
            <exclusion>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy</artifactId>
            </exclusion>
            <exclusion>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-sql</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy</artifactId>
        <version>3.0.3</version>
    </dependency>

    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-sql</artifactId>
        <version>3.0.3</version>
    </dependency>
	
	
	
	
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-cassandra</artifactId>
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.junit.vintage</groupId>
					<artifactId>junit-vintage-engine</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>  
</project>          
    
    
       
   

En el directorio src/main/resources creamos el archivo application.properties
 
  
              
              
spring.data.cassandra.keyspace-name=ligadb
spring.data.cassandra.contact-points=127.0.0.1
spring.data.cassandra.local-datacenter=datacenter1
spring.data.cassandra.port=9042
springdoc.swagger-ui.path=/apiligaazteca.html
springdoc.swagger-ui.operationsSorter=method           
server.port = 8888             
              
              
              
      
   

En src/main/java creamos el paquete com.tutosoftware.ligaaztecaapi.domain
Este paquete creamos la clase Torneo
 
   
  
package com.tutosoftware.ligaaztecaapi.domain;

import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;

@Table
public class Torneo {
	
	@PrimaryKey
	private String idTorneo;
	private String nombreTorneo;
	private int cantidadEquipos;
	private int activarTorneo;
	private double costoInscripcion;
	private int numJugPorEquipo;
	private int numVueltas;
	private int refuerzos;
	
	public Torneo() {}
	
	public Torneo(String idTorneo, String nombreTorneo, int cantidadEquipos, int activarTorneo,
			double costoInscripcion, int numJugPorEquipo, int numVueltas, int refuerzos) {
		super();
		this.idTorneo = idTorneo;
		this.nombreTorneo = nombreTorneo;
		this.cantidadEquipos = cantidadEquipos;
		this.activarTorneo = activarTorneo;
		this.costoInscripcion = costoInscripcion;
		this.numJugPorEquipo = numJugPorEquipo;
		this.numVueltas = numVueltas;
		this.refuerzos = refuerzos;
	}

	public String getIdTorneo() {
		return idTorneo;
	}

	public void setIdTorneo(String idTorneo) {
		this.idTorneo = idTorneo;
	}

	public String getNombreTorneo() {
		return nombreTorneo;
	}

	public void setNombreTorneo(String nombreTorneo) {
		this.nombreTorneo = nombreTorneo;
	}

	public int getCantidadEquipos() {
		return cantidadEquipos;
	}

	public void setCantidadEquipos(int cantidadEquipos) {
		this.cantidadEquipos = cantidadEquipos;
	}

	

	public int getActivarTorneo() {
		return activarTorneo;
	}

	public void setActivarTorneo(int activarTorneo) {
		this.activarTorneo = activarTorneo;
	}

	public double getCostoInscripcion() {
		return costoInscripcion;
	}

	public void setCostoInscripcion(double costoInscripcion) {
		this.costoInscripcion = costoInscripcion;
	}

	public int getNumJugPorEquipo() {
		return numJugPorEquipo;
	}

	public void setNumJugPorEquipo(int numJugPorEquipo) {
		this.numJugPorEquipo = numJugPorEquipo;
	}

	public int getNumVueltas() {
		return numVueltas;
	}

	public void setNumVueltas(int numVueltas) {
		this.numVueltas = numVueltas;
	}

	public int getRefuerzos() {
		return refuerzos;
	}

	public void setRefuerzos(int refuerzos) {
		this.refuerzos = refuerzos;
	}
	
	
	
	
	
	

}

   
  
    
   

Ahora creamos la clase UsuarioAdmin
 
   
   package com.tutosoftware.ligaaztecaapi.domain;

import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;

@Table
public class UsuarioAdmin {
	
	private String nombre;
	private String apellidoPaterno;
	private String apellidoMaterno;
	@PrimaryKey
	private String email;
	private String password;
	
	
	public UsuarioAdmin() {}


	public UsuarioAdmin(String nombre, String apellidoPaterno, String apellidoMaterno, String email, String password) {
		super();
		this.nombre = nombre;
		this.apellidoPaterno = apellidoPaterno;
		this.apellidoMaterno = apellidoMaterno;
		this.email = email;
		this.password = password;
	}


	public String getNombre() {
		return nombre;
	}


	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	public String getApellidoPaterno() {
		return apellidoPaterno;
	}


	public void setApellidoPaterno(String apellidoPaterno) {
		this.apellidoPaterno = apellidoPaterno;
	}


	public String getApellidoMaterno() {
		return apellidoMaterno;
	}


	public void setApellidoMaterno(String apellidoMaterno) {
		this.apellidoMaterno = apellidoMaterno;
	}


	public String getEmail() {
		return email;
	}


	public void setEmail(String email) {
		this.email = email;
	}


	public String getPassword() {
		return password;
	}


	public void setPassword(String password) {
		this.password = password;
	}
	
	
	

}
              
 
 
            
     
   

A contonuación creamos la calse EquipoKey esta clase es para la llave compuesta de la tabla equipo
 
  
    
    package com.tutosoftware.ligaaztecaapi.domain;

import java.io.Serializable;

import org.springframework.data.cassandra.core.cql.PrimaryKeyType;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyClass;
import org.springframework.data.cassandra.core.mapping.PrimaryKeyColumn;


@PrimaryKeyClass
public class EquipoKey implements Serializable{
	
	
	 /**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	
	
	

	  @PrimaryKeyColumn(name = "idTorneo", ordinal = 0, type = PrimaryKeyType.PARTITIONED)
	  private String idTorneo;

	  @PrimaryKeyColumn(name = "idEquipo", ordinal = 1, type = PrimaryKeyType.CLUSTERED)
      private String idEquipo;

	
	  
	public EquipoKey(){}  
	  
	  
	  
	public String getIdTorneo() {
		return idTorneo;
	}

	public void setIdTorneo(String idTorneo) {
		this.idTorneo = idTorneo;
	}

	public String getIdEquipo() {
		return idEquipo;
	}

	public void setIdEquipo(String idEquipo) {
		this.idEquipo = idEquipo;
	}
	  
	  
	  
	  
}
    
    
    
    
    
    
    
      
   

Ahora creamos la clase Equipo
 
  
    package com.tutosoftware.ligaaztecaapi.domain;

import org.springframework.data.cassandra.core.mapping.PrimaryKey;
import org.springframework.data.cassandra.core.mapping.Table;

@Table
public class Equipo {
	
	@PrimaryKey
	private EquipoKey pk;
	private String nombreEquipo;
	private String delegado;
	private String campo;
	private String email;
	private String password;
	private String telefono;
	private int idStatus;
	
	public Equipo() {}

	public Equipo(EquipoKey pk, String nombreEquipo, String delegado, String campo, String email, String password,
			String telefono, int idStatus) {
		super();
		this.pk = pk;
		this.nombreEquipo = nombreEquipo;
		this.delegado = delegado;
		this.campo = campo;
		this.email = email;
		this.password = password;
		this.telefono = telefono;
		this.idStatus = idStatus;
	}

	public EquipoKey getPk() {
		return pk;
	}

	public void setPk(EquipoKey pk) {
		this.pk = pk;
	}

	public String getNombreEquipo() {
		return nombreEquipo;
	}

	public void setNombreEquipo(String nombreEquipo) {
		this.nombreEquipo = nombreEquipo;
	}

	public String getDelegado() {
		return delegado;
	}

	public void setDelegado(String delegado) {
		this.delegado = delegado;
	}

	public String getCampo() {
		return campo;
	}

	public void setCampo(String campo) {
		this.campo = campo;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public int getIdStatus() {
		return idStatus;
	}

	public void setIdStatus(int idStatus) {
		this.idStatus = idStatus;
	}

	
}